获得兄弟姐妹jquery / ajax的孩子的价值?

时间:2013-10-07 18:52:17

标签: javascript php jquery ajax siblings

我正在尝试在用户点击“打开评论”后使ajax评论功能正常工作。

目前我从我的php脚本中获取数据,并且ajax调用的状态为“200 OK”,因此它可以定义,但是我无法获得已被点击的当前评论的正确值为了将其发布到php脚本。

我要问的是如何获取".posted_comment_id"类的值,然后如何加载返回".commentView"类的数据?

的jQuery / AJAX:

$(".closedComment").click(function(){
    var $this = $(this);
    $this.hide().siblings('.openComment').show();
    $this.siblings().next(".commentBox").slideToggle(); 

        $.ajax({
         type: "POST",
         url: "http://example.dev/comments/get_timeline_comments", 
         data: {post_id: $this.siblings().next(".commentBox").find(".posted_comment_id").val()},
         dataType: "text",  
         cache:false,
         success: 
              function(data){
                $this.closest(".commentView").load(data);
              }
         });

    return false;
});

HTML:

<div class="interactContainer">
    <div class="closedComment" style="display: none;">
        <a href="#" class="floatLeft rightMrgn">open comments</a>
    </div>
    <div class="openComment" style="display: block;">
        <a href="#" class="floatLeft rightMrgn">close comments</a>
    </div>
    <div class="commentBox floatLeft" style="display: block;">
        <form action="http://example.com/comments/post_comment" method="post" accept-charset="utf-8">
          <textarea name="comment" class="inputField"></textarea>
          <input type="hidden" name="post" value="13">
          <input type="hidden" name="from" value="5">             
          <input type="hidden" name="to" value="3"> 
          <input type="submit" name="submit" class="submitButton">
        </form> 
          <div class="commentView"></div>   
          <div class="posted_comment_id" style="display:none;">13</div>  
    </div>
</div>

2 个答案:

答案 0 :(得分:1)

.val替换为.html.text。这将返回元素的innerHTML

data: {
    post_id: $this.siblings().next(".commentBox").find(".posted_comment_id").text()
}

您可能需要将字符串转换为整数才能使其正常工作。

如果查询选择器失败,则此选择器可能会执行该作业:

$this.parent().find(".posted_comment_id")

要在网页上添加返回的数据,请使用success处理程序。这是一个如何完成的例子:

success: function(json) {
        // Parse your data here. I don't know what you get back, I assume JSON
        var data = JSON.parse(json),
            content = data.whatever_you_want_to_print;

        // Assuming your selector works, you put in in the element using .html
        $this.closest(".commentView").html(content);
    }
});

答案 1 :(得分:0)

你可能想做类似的事情:

$(this).parents('.interactContainer').find(".posted_comment_id").text()
相关问题