我是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()
等等。请帮忙。提前谢谢。
答案 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/