以下是我正在使用的代码,我的目标是每当用户点击具有类名' .view_all'的按钮时。我想使用使用ajax返回的data
并将其放入此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);
});
});
答案 0 :(得分:2)
this
是你的问题,ajax成功回调中的this
不是你想到的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
});
});