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子功能中不起作用。我在这里做错了什么?

4

3 回答 3

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);
});
});
于 2013-04-01T13:32:58.493 回答
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);
    });
});
于 2013-04-01T13:33:19.410 回答
3

也可以设置的context选项$.ajax勾选这个选项

control_td.each(function(){
  $.ajax({
    url: 'control.php?udid='+$(this).attr('udid'),
    cache: false,
    async: true,
    context: this
  }).done(function(data) {
    $(this).html(data);
  });
});
于 2013-04-01T13:36:44.347 回答