jQuery - parent()在回调函数中不起作用

问题描述:

我正在用parent()和nearest()函数进行测试,没有在函数内工作。jQuery - parent()在回调函数中不起作用

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')在回调函数中不工作?

您的this里面的回调函数有另一个范围比this在外面。你需要做这样的事情:

var self = this; 
$.get('form.php', function(data) { 
    alert(data); 
    $(self).closest('td').html('Done!'); 
}); 

您可以使用jQuery的.proxy()-function达到预期的效果,太像帕特里克DW在他的帖子中指出。我建议通过this document阅读。

+0

这很快,它的工作!我并不知道'this'在$ .get中的作用是不同的,这是另一个需要学习的课程。谢谢你们俩! – 2010-09-13 16:35:18

+0

'这个'在不同的功能中有不同的作用。 JavaScript具有功能范围。 'this'指向当前的上下文/范围。 – jwueller 2010-09-13 16:40:18

您可以使用jQuery's $.proxy method作为$.get()的第二个参数以保留期望值this

$.get('form.php', $.proxy(function(data) { 
    alert(data); 
    $(this).closest('td').html('Done!'); 
}, this));