使用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);
}
})
})