2013-04-01 68 views
1
control_td.each(function(){ 
$.ajax({ 
    url: 'control.php?udid='+$(this).attr('udid'), 
    cache: false, 
    async: true 
}).done(function(data) { 
    $(this).html(data); 
}); 
}); 

$this不起作用.done子功能。我在這裏做錯了什麼?

回答

6

因爲this沒有引用回調中的元素項。

嘗試關閉新值。

control_td.each(function(){ 
var $self = $(this); // magic here! 
$.ajax({ 
    url: 'control.php?udid='+$(this).attr('udid'), 
    cache: false, 
    async: true 
}).done(function(data) { 
    $self.html(data); 
}); 
}); 
4

試試這個:

control_td.each(function() { 
    var $this = $(this); 
    $.ajax({ 
     url: 'control.php?udid=' + $this.attr('udid'), 
     cache: false, 
     async: true 
    }).done(function (data) { 
     $this.html(data); 
    }); 
}); 
3

你也可以設置context選項$.ajax的,check this option

control_td.each(function(){ 
    $.ajax({ 
    url: 'control.php?udid='+$(this).attr('udid'), 
    cache: false, 
    async: true, 
    context: this 
    }).done(function(data) { 
    $(this).html(data); 
    }); 
});