0

下面是我正在使用的代码,我的目标是每当用户单击类名为“.view_all”的按钮时。我想使用data使用ajax返回的那个并将它放在里面line $(this).parent('div').siblings('.body_wrap').html(data);我已经尝试了下面的代码,但它不起作用。

$('.view_all').click(function (event) {
     $.ajax({
         type: 'POST',
         url: 'ajax/return_data.php'
     }).success(function (data) {
         $(this).parent('div').siblings('.body_wrap').html(data);
     });

 });
4

1 回答 1

2

this是您的问题,thisajax 成功回调内部不是您想象的 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
     });

 });

另一种方法是设置contextajax设置的属性。

$('.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 
     });
 });
于 2013-10-06T01:56:37.960 回答