我正在使用parent()和nearest()进行测试,没有在函数内工作。
TD保持不变,使用此方法无变化:
$.get('form.php', function(data){
alert(data);
$(this).closest('td').html('Done!');
});
TD更新,此方法有效:
$.get('form.php', function(data){
alert(data);
});
$(this).closest('td').html('Done!');
请你帮我弄清楚为什么closest('td')
无法在回调函数中工作?
答案 0 :(得分:6)
回调函数中的this
内部有另一个范围,而不是外部的this
。你需要做这样的事情:
var self = this;
$.get('form.php', function(data) {
alert(data);
$(self).closest('td').html('Done!');
});
你也可以使用jQuery的.proxy()
-function来达到预期的效果,就像patrick dw在他的帖子中指出的那样。我建议您阅读this document。
答案 1 :(得分:3)
您可以使用jQuery's $.proxy
method作为$.get()
的第二个参数,以保留所需的this
值。
$.get('form.php', $.proxy(function(data) {
alert(data);
$(this).closest('td').html('Done!');
}, this));