使用$ this和.find在另一个div中找到一个div

时间:2014-03-04 23:02:09

标签: javascript jquery html ajax append

我在一个页面上有多个评论表单,在ajax调用之后需要将评论附加到评论者div。但目前它将它添加到所有人,不知道如何只将其添加到当前div。

所以评论部分看起来像这样:

<div class="commentson">
<div class="commentsholder"> All THE COMMENTS IN HERE </div>
    <form class="addcomment" action="process/addcomment.php" method="post">
        <div class="commentbutton">
        <input type="text" maxlength="250" name="addpostcomment" class="addpostcomment" placeholder="Add Comment... (max 60 characters)" />
        <input type="submit" id="addcommentbutton" class="addcommentbutton" value="Post" disabled/>
        </div>
        <span class="countdownCommentLength"></span>
    </form>
</div>

jQuery追加:

$( ".commentsholder" ).append("New Comment");

注释div中还有其他形式等,但我需要做的只是将注释附加到当前正在使用的注释div中的注释持有者。

3 个答案:

答案 0 :(得分:1)

如果this上下文是addcommentbutton

,请尝试此操作
$(this).closest('form').prev().append($(this).siblings('.addpostcomment').val());

答案 1 :(得分:1)

this上下文取决于您尝试执行此操作的位置。如果你在ajax调用(after an ajax call need to append the comment)中这样做,你可以做这样的事情。

 $('.addcommentbutton').click(function(){
     var $this = $(this); //cache it here

     //your ajax call
     $.ajax({
        ....
        success: function(){
           $this.closest('.addcomment').prev().append(newComment);
           //or
           //$this.closest('.commentson').find('.commentsholder').append(...);
        }
     });

 });

答案 2 :(得分:0)

您所要做的就是在jQuery选择器中添加父级和子级:

$( ".commentson .commentsholder" ).append("New Comment");

但如果您有多个.commentsholder,那么您可以使用:

$(this).parent(".commentsholder ").append("New Comment");

$(这)是当前点击的“按钮”