如何使用 jQuery select 下一个或最后一个元素
how to select next or last elememt using jQuery
我是 jQuery 的新手。我正在单击发送 ajax 请求的 link,在回调中我想更改下一个 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()
等。请帮忙。提前致谢。
您可能正在寻找 .siblings()
选择器。您可以将它与其他 jQuery 选择器一起使用来遍历您的 HTML.
此选择器获取与您从中调用它的任何元素处于同一级别的所有元素。您可以在这里找到更多信息。 http://api.jquery.com/siblings/
我终于找到了解决办法。
而不是:
el.parent().children('p').last().text(data);
我不得不简单地使用:
el.next('p').text(data);
这将始终 select 下一个 p
元素,这正是要求。
我是 jQuery 的新手。我正在单击发送 ajax 请求的 link,在回调中我想更改下一个 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()
等。请帮忙。提前致谢。
您可能正在寻找 .siblings()
选择器。您可以将它与其他 jQuery 选择器一起使用来遍历您的 HTML.
此选择器获取与您从中调用它的任何元素处于同一级别的所有元素。您可以在这里找到更多信息。 http://api.jquery.com/siblings/
我终于找到了解决办法。
而不是:
el.parent().children('p').last().text(data);
我不得不简单地使用:
el.next('p').text(data);
这将始终 select 下一个 p
元素,这正是要求。