首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用JQuery将超文本标记语言插入到DIV中

使用JQuery将超文本标记语言插入到DIV中
EN

Stack Overflow用户
提问于 2011-07-08 08:36:35
回答 6查看 54.9K关注 0票数 8

我的html中有一堆嵌套在div标记中的按钮。

代码语言:javascript
代码运行次数:0
运行
复制
<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函数中,我尝试执行以下操作:

代码语言:javascript
代码运行次数:0
运行
复制
$(this).parent().html(data);

我知道数据正在成功发布,并且成功函数正在工作。奇怪的是,下面的代码是有效的:

代码语言:javascript
代码运行次数:0
运行
复制
$(".button-wrapper").html(data);

但很明显,这会将HTML添加到每个div,而不仅仅是所单击的按钮的那个div。

有没有人知道我可能会出错的地方?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-07-08 08:41:15

在jQuery中,'this‘通常在回调中被覆盖。解决方法是使用另一个变量引用此变量:

代码语言:javascript
代码运行次数:0
运行
复制
var _this = this; //or var $_this = this;
$(_this).parent().html(data);
票数 12
EN

Stack Overflow用户

发布于 2011-07-08 08:41:59

问题是在你的回调this中不再是按钮了。试试这个:

代码语言:javascript
代码运行次数:0
运行
复制
$(".button-wrapper").click(function(){
   var that=this;
   $.ajax(
      // ...
      success: function(data){
         $(that).parent().html(data);  
      }
   );
});
票数 3
EN

Stack Overflow用户

发布于 2015-02-03 17:19:07

这会对你有帮助的……

代码语言:javascript
代码运行次数:0
运行
复制
$("button").click(function(){
    $("div").html("Hello <b>world</b>!");
}); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6618743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档