假设我有一堆共享点击事件的链接:
<a href="#" class="do-stuff">Click me</a>
<a href="#" class="do-stuff">Click me</a>
<a href="#" class="do-stuff">Click me</a>
<a href="#" class="do-stuff">Click me</a>
在 $('.do-stuff').click 函数中,我执行一个 JQuery ajax POST 请求,用东西更新数据库,我得到了成功的响应。ajax完成后,我只想将链接文本的值更改为我从服务器发回的任何内容......
$('.do-stuff').click(function () {
$.ajax({
type: "POST",
url: "MyWebService.asmx/DoSomething",
data: '{CurrentLinkText: "'+ $(this).text() +'"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
$(this).text(result.d);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
});
这调用得很好,我验证了“result.d”确实是来自服务器的文本,但文本没有改变。我认为在 AJAX 发布之后不再可以访问 $(this) 元素?我能做些什么来解决这个问题?