使用JQuery清空动态加载的span

使用JQuery清空动态加载的span,jquery,html,ajax,scope,Jquery,Html,Ajax,Scope,我有一个动态加载的按钮,如下所示: <button type="button" class="btn btn-default admire"><span class="font awesome"> 3</span></button> 它没有像Expexced那样工作。按钮“this”在ajax函数中是否仍然可以引用?还是超出了范围 编辑:如何在ajax调用函数中引用此范围 谢谢 William问题在于此指的是$。post回调函数的此,而不是按钮的

我有一个动态加载的按钮,如下所示:

<button type="button" class="btn btn-default admire"><span class="font awesome"> 3</span></button>
它没有像Expexced那样工作。按钮“this”在ajax函数中是否仍然可以引用?还是超出了范围

编辑:如何在ajax调用函数中引用此范围

谢谢


William

问题在于
指的是
$。post
回调函数的
,而不是按钮的
。您需要通过将其指定给变量来保留其引用

示例:

$(document.body).on("click", "button.admire", function(){  
  var span = $(this).find('span');
  $.post('ajax/example.php', function(data){
    span.empty();
    span.append(data);
  });
});

如果我明白你的意思,试着这样做,别忘了给btn添加类

 $(document.body).on("click", "button.admire", function(){ 
   var btn = $(this);
 $.ajax({
   url : "your link",
   type: "POST",
   dataType: "Json",//by default it's returning html
   data: "your data",// if you sending data
   async: "false", // it is mean, that until ajax request is not completed it not going forword
   complete: function (response) {

     btn.find("span").empty();
     btn.find("span").append(response.yourresponse);

   }

  })

 })

它一定超出了范围,因为如果我将该行放在ajax调用函数之前,它将很好地清空。谢谢你,输入错误是由于草率的部分复制和粘贴造成的。实际上它确实有这个功能。你知道我如何能够引用AJAX函数中的按钮吗?使用.post速记是否会使我无法访问响应函数中的$(this)?我已经弄明白了,只需要将$(this)放在一个变量中,就可以在success函数中访问它。是的。在click函数的全局范围内声明变量,如下所示-请参阅“我的编辑/在您的案例中设置async false非常重要”。这样,在ajax请求未返回之前,您的函数不会继续运行
 $(document.body).on("click", "button.admire", function(){ 
   var btn = $(this);
 $.ajax({
   url : "your link",
   type: "POST",
   dataType: "Json",//by default it's returning html
   data: "your data",// if you sending data
   async: "false", // it is mean, that until ajax request is not completed it not going forword
   complete: function (response) {

     btn.find("span").empty();
     btn.find("span").append(response.yourresponse);

   }

  })

 })