Jquery 在函数之外使用返回数据
下面是我正在使用的代码,我的目标是每当用户单击带有类名“.view\u all”的按钮时。我想使用使用ajax返回的Jquery 在函数之外使用返回数据,jquery,ajax,function,Jquery,Ajax,Function,下面是我正在使用的代码,我的目标是每当用户单击带有类名“.view\u all”的按钮时。我想使用使用ajax返回的数据,并将其放在行$(this).parent('div').sides('body_wrap').html(数据)中我尝试了下面的代码,但它不起作用 $('.view_all').click(function (event) { $.ajax({ type: 'POST', url: 'ajax/return_data.php'
数据
,并将其放在行$(this).parent('div').sides('body_wrap').html(数据)中代码>我尝试了下面的代码,但它不起作用
$('.view_all').click(function (event) {
$.ajax({
type: 'POST',
url: 'ajax/return_data.php'
}).success(function (data) {
$(this).parent('div').siblings('.body_wrap').html(data);
});
});
this
是您的问题,ajax成功回调中的不像您所想的那样是DOM元素,而是jqXHR对象。有很多方法可以解决这个问题,最简单的方法就是在外部缓存$(this)
,并在回调中使用它。尝试:
$('.view_all').click(function (event) {
var $this = $(this); //Cache it here
$.ajax({
type: 'POST',
url: 'ajax/return_data.php'
}).success(function (data) {
$this.parent('div').siblings('.body_wrap').html(data); //use it
});
});
另一种方法是设置ajax设置的context
属性
$('.view_all').click(function (event) {
$.ajax({
context:this, //set up context
type: 'POST',
url: 'ajax/return_data.php'
}).success(function (data) {
$(this).parent('div').siblings('.body_wrap').html(data); //Now
});
});
您的问题标题可能重复,且内容冲突……请注意,v1.8中不推荐使用.success()
:现在推荐使用.done()
。@user2310422下面提到的解决方案对您有效吗?