我的html中有一堆嵌套在div标记中的按钮。
<div class="button-wrapper">
<button class="button-class">Click here</button>
</div>
<div class="button-wrapper">
<button class="button-class">Click here</button>
</div>
...
单击该按钮将使用JQuery发布一些数据,并通过.ajax成功函数返回一些HTML.我尝试为每个被点击的按钮替换div的内容,但是由于某些原因,我的JQuery选择器似乎不工作。
在我的success函数中,我尝试执行以下操作:
$(this).parent().html(data);
我知道数据正在成功发布,并且成功函数正在工作。奇怪的是,下面的代码是有效的:
$(".button-wrapper").html(data);
但很明显,这会将HTML添加到每个div,而不仅仅是所单击的按钮的那个div。
有没有人知道我可能会出错的地方?
发布于 2011-07-08 00:41:15
在jQuery中,'this‘通常在回调中被覆盖。解决方法是使用另一个变量引用此变量:
var _this = this; //or var $_this = this;
$(_this).parent().html(data);
发布于 2011-07-08 00:41:59
问题是在你的回调this
中不再是按钮了。试试这个:
$(".button-wrapper").click(function(){
var that=this;
$.ajax(
// ...
success: function(data){
$(that).parent().html(data);
}
);
});
发布于 2015-02-03 09:19:07
这会对你有帮助的……
$("button").click(function(){
$("div").html("Hello <b>world</b>!");
});
https://stackoverflow.com/questions/6618743
复制相似问题