我是 JQuery 新手。当我单击第一个链接时,它会向服务器发送一个 Ajax 请求并返回一些数据。到目前为止一切都很好。在回调中,我想更改第二个链接的显示文本。例如 - 6 人喜欢它。我搜索了很多,但无法使其工作。
<div class="container" id="some-id">
<a class="someclass-1">Like</a>
<a class="someClass-2">5 people liked it</a>
</div>
我尝试了类似更改第二个链接的文本的操作。但我无法更改文本。我的问题是如何选择和更改第二个链接的文本。
$(this).closest('div').find('.someClass-2').html('6 people liked it');
我的 Ajax 代码类似于:
$(".someClass-1").click(function(e) {
if ($(this).html() == "Like") {
var parameters = { statusId: $(this).closest('div').attr('some-id')};
$.get(
"/like",
parameters,
function(data) {
$(this).closest('div').find('.someClass-2').html( data + ' people liked it.');
}
);
}
我的页面上还有更多 someClass-2
类的链接,但我不想打扰它们。我只想更改当前 div
中 someClass-2
链接的文本。
最佳答案
使用next()
$(this).next('.someClass-2').html('6 people liked it');
使用ajax创建一个包含当前元素的变量:
$(".someClass-1").click(function(e) {
var el = $(this);///see here
if ($(this).html() == "Like") {
var parameters = { statusId: $(this).closest('div').attr('some-id')};
$.get(
"/like",
parameters,
function(data) {
el.next('.someClass-2').html( data + ' people liked it.');//if you use $(this) i will refer to the ajax object
}
);
}
或者:
$(".someClass-1").click(function(e) {
var el = $(this);///see here
if ($(this).html() == "Like") {
var parameters = { statusId: $(this).closest('div').attr('some-id')};
$.get(
"/like",
parameters,
function(data) {
el.parent().find('.someClass-2').html( data + ' people liked it.');//if you use $(this) i will refer to the ajax object
}
);
}
关于javascript - 使用 jquery 单击另一个链接时更新链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36543495/