如何定位特定类以将视图切换到用户?

时间:2016-12-18 03:39:58

标签: javascript jquery

当用户点击我的评论按钮时,我想向他们显示该帖子的评论。截至目前,在页面加载时,这些注释被类隐藏。

我无法弄清楚如何隐藏显示的评论,然后当用户点击特定评论按钮时,只显示帖子的评论。

现在我显示每个帖子的所有评论。

我有一个post._id,我可以用它来定位一组特定的注释,但我不确定如何使用这段数据。有什么想法吗?

玉文件

.fullPostContainer
            each post in posts
                .media.white.paddingBoxForPost
                    .media-left.media-middle
                        a.removeTextDeco(href=post.link,   target='_blank')
                            img.media-object(src=post.img, alt='facebook logo')

                    .media-body
                        a.removeTextDeco(href=post.link, target='_blank')
                            div#mainTitlePost.media-heading.postTitleFont= post.title
                            div#mainShortDesc.descriptionFont= post.description
                        //form.formSub
                        //    label(for='upvote')
                        button.upvoteClick.btn.btn-lg.btnColor(value= post._id)
                            span.glyphicon.glyphicon-fire= post.upvote
                        button.btn.commentsInit.btn-lg.btnColor(value= post._id)
                            span.glyphicon.glyphicon-comment
                .commentsForTheWin.hideOnLoad
                        p this is some text
                        span

JS档案

$(function () {

$('.commentsInit').click(function () {


    // grabs value of button which is post._id
    // var uniCommID = $(this).attr("value");


    $('.hideOnLoad').toggle("slow");


    $.ajax({
        type: "GET",
        url: "/api/comments"
    }).success(function (users) {

        var a = JSON.stringify(users);
        $('.commentsForTheWin span').text("Comments but not really for " + a);

    })

})

});

我现在正在从我的数据库中得到我想要的东西,但我只是最难以确定如何定位特定的类(或者如果可能的话)。

1 个答案:

答案 0 :(得分:0)

我使用jQuery .closest().commentsInit按钮遍历树,在变量中存储对父.paddingBoxForPost的引用,并使用它来定位相关元素。

$(function() {
  $('.commentsInit').click(function() {

    // grabs value of button which is post._id
    // var uniCommID = $(this).attr("value");

    var $post = $(this).closest('.paddingBoxForPost');

    $post.find('.hideOnLoad').toggle("slow");

    $.ajax({
      type: "GET",
      url: "/api/comments"
      }).success(function(users) {
        var a = JSON.stringify(users);
        $post.find('.commentsForTheWin span').text("Comments but not really for " + a);
    })
  })
});