如何使用jQuery选择next或last elememt

时间:2016-04-13 17:29:37

标签: jquery html ajax swig-template

我是jQuery的新手。我点击发送ajax请求的链接,在回调中我想更改下一个p元素的文本。 我的HTML代码:

                <div> 
                 <img src="/images/{{comment.commenterPicName}}" class="img-circle">
                 <b>{{comment.commenterFirstName}}</b>
                 <p>{{comment.commentMessage}}</p>

                 {% if comment.isLiked %}
                    <a class="comment-like" id="{{comment.id}}">Unlike</a>
                 {% else %}
                    <a class="comment-like" id="{{comment.id}}">Like</a>
                 {% endif %}
                    <p>{{comment.likersCount}}</p>
                </div>

我的jQuery代码:

$(".comment-like").click(function(e) {
var el =  $(this);
if ($(this).html() == "Like") {
    var parameters = { commentId: $(this).attr('id')};
    $.get(
        "/likeComment",
        parameters,
        function(data) { 
          el.parent().children('p').last().text(data);
        }
    );
    $(this).html('Unlike');
}
else {
    var parameters = { commentId: $(this).attr('id')};
    $.get(
        "/unlikeComment",
        parameters,
        function(data) { 
          el.parent().children('p').last().text(data);
        }
    );
    $(this).html('Like');
}

我的问题是我无法更改包含likersCount的p元素。我试过了.next() .last()等等。请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:2)

我终于找到了解决方案。

而不是:

el.parent().children('p').last().text(data);

我必须简单地使用:

el.next('p').text(data);

这将始终选择下一个p元素,这正是要求。

答案 1 :(得分:0)

您可能正在寻找.siblings()选择器。您可以将它与其他jQuery选择器一起使用来遍历HTML。

此选择器获取您调用它的任何元素的所有元素。您可以在这里找到更多信息。 http://api.jquery.com/siblings/