使用 jquery 单击另一个 link 更新 link
Updating a link on clicking another link using jquery
我是 JQuery 的新手。当我单击第一个 link 时,它会向服务器发送 Ajax 请求并返回一些数据。到目前为止一切都很好。在回调中,我想更改第二个 link 的显示文本。例如 - 6 人喜欢它。我搜索了很多但无法正常工作。
<div class="container" id="some-id">
<a class="someclass-1">Like</a>
<a class="someClass-2">5 people liked it</a>
</div>
我尝试过更改第二个 link 的文本。但我无法更改文本。我的问题是我如何 select 并更改第二个 link.
的文本
$(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.');
}
);
}
页面上还有很多 link 的 class someClass-2
,但我不想打扰他们。我只想更改 someClass-2
link 在当前 div
.
中的文本
改变这个
$(this).closest('div').find('.someClass-2').html('6 people liked it');`
至此
$(this).parent().children("a.someClass-2").text("new text");
也许是这样的?
$('.someClass-2').html('6 people liked it');
...但我不清楚将该行放在代码中的什么位置。
为什么要使用 $(this)
?如果您有唯一标识符,请使用它。
$(".someClass-2").text("6 people liked it");
当然,把它放在 Ajax success
函数中。
编辑:
var dataNumber;
$(".someClass-1").click(function(e) {
myElement = $(this);
if ($(this).html() == "Like") {
var parameters = { statusId: $(this).closest('div').attr('some-id')};
$.get(
"/like",
parameters,
function(data) {
myElement.siblings('.someClass-2').html( data + ' people liked it.');
}
);
}
将 .siblings()
用于 select 所有兄弟姐妹,而不是通过 class 或 .next()
过滤它,如果你只需要 select 下一个兄弟姐妹。
此外,请注意你把 this
select 或...放在 Ajax 调用中,而不是 click()
函数中,正因为如此它改变了它的价值。
使用next()
$(this).next('.someClass-2').html('6 people liked it');
with 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
}
);
}
我想这会对你有所帮助
$('#some-id .someClass-2').text('6 people liked it');
它将替换#some-id 中所有 someclass-2 的 html。
我是 JQuery 的新手。当我单击第一个 link 时,它会向服务器发送 Ajax 请求并返回一些数据。到目前为止一切都很好。在回调中,我想更改第二个 link 的显示文本。例如 - 6 人喜欢它。我搜索了很多但无法正常工作。
<div class="container" id="some-id">
<a class="someclass-1">Like</a>
<a class="someClass-2">5 people liked it</a>
</div>
我尝试过更改第二个 link 的文本。但我无法更改文本。我的问题是我如何 select 并更改第二个 link.
的文本$(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.');
}
);
}
页面上还有很多 link 的 class someClass-2
,但我不想打扰他们。我只想更改 someClass-2
link 在当前 div
.
改变这个
$(this).closest('div').find('.someClass-2').html('6 people liked it');`
至此
$(this).parent().children("a.someClass-2").text("new text");
也许是这样的?
$('.someClass-2').html('6 people liked it');
...但我不清楚将该行放在代码中的什么位置。
为什么要使用 $(this)
?如果您有唯一标识符,请使用它。
$(".someClass-2").text("6 people liked it");
当然,把它放在 Ajax success
函数中。
编辑:
var dataNumber;
$(".someClass-1").click(function(e) {
myElement = $(this);
if ($(this).html() == "Like") {
var parameters = { statusId: $(this).closest('div').attr('some-id')};
$.get(
"/like",
parameters,
function(data) {
myElement.siblings('.someClass-2').html( data + ' people liked it.');
}
);
}
将 .siblings()
用于 select 所有兄弟姐妹,而不是通过 class 或 .next()
过滤它,如果你只需要 select 下一个兄弟姐妹。
此外,请注意你把 this
select 或...放在 Ajax 调用中,而不是 click()
函数中,正因为如此它改变了它的价值。
使用next()
$(this).next('.someClass-2').html('6 people liked it');
with 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
}
);
}
我想这会对你有所帮助
$('#some-id .someClass-2').text('6 people liked it');
它将替换#some-id 中所有 someclass-2 的 html。