如果ajax完成,用请求的数据替换html

If ajax done replace html with the requested data

本文关键字:数据 替换 html 请求 ajax 完成 如果      更新时间:2023-09-26

我的问题是,我想替换tooltip-content中的内容,但它没有替换它。例如,如果我用data替换body内容,它可以工作,但它不会替换tooltip-content

目前是tooltip-content中的一个加载符号。这只是HTML和CSS。

我有这个javascript:

$('td').hover(function () {
    if ($(this).find('div.tooltip').length != 0 ) {
        $.ajax({
            method: "POST",
            url: "dig.php",
            data: {
                host: $(this).find(' div.tooltip').attr('data-href'),
                server: $(this).find(' div.tooltip').attr('data-server')
            }
        })
        .done(function (data) {
            console.log('worked');
            $(this).find('div.tooltip-content').html(data);
        });
    }
});

this内ajax成功是指xhr对象。要么你需要将它作为上下文传递,要么将它设置为一个变量。

$('td').hover(function() {
  var $this=$(this);
  if ($this.find('div.tooltip').length != 0) {
    $.ajax({
        method: "POST",
        url: "dig.php",
        data: {
          host: $(this).find(' div.tooltip').attr('data-href'),
          server: $(this).find(' div.tooltip').attr('data-server')
        }
      })
      .done(function(data) {
        console.log('worked');
        $this.find('div.tooltip-content').html(data);
      });
  }
});

如果你设置了context

,你可以在ajax success中使用this
$('td').hover(function() {
  if ($(this).find('div.tooltip').length != 0) {
    $.ajax({
        method: "POST",
        url: "dig.php",
        context: this,
        data: {
          host: $(this).find(' div.tooltip').attr('data-href'),
          server: $(this).find(' div.tooltip').attr('data-server')
        }
      })
      .done(function(data) {
        console.log('worked');
        $(this).find('div.tooltip-content').html(data);
      });
  }
});

裁判:http://api.jquery.com/jquery.ajax/