使用JQuery将HTML插入DIV

时间:2011-07-08 00:36:35

标签: jquery html

我的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选择器似乎没有工作。

我正在我的成功函数中尝试以下内容:

$(this).parent().html(data);

我知道数据已成功发布,并且成功功能正在运行。奇怪的是,以下是有效的:

$(".button-wrapper").html(data);

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

有谁知道我在哪里可能会出错?

6 个答案:

答案 0 :(得分:12)

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

var _this = this; //or var $_this = this;
$(_this).parent().html(data);

答案 1 :(得分:3)

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

$(".button-wrapper").click(function(){
   var that=this;
   $.ajax(
      // ...
      success: function(data){
         $(that).parent().html(data);  
      }
   );
});

答案 2 :(得分:3)

这对你有帮助....

$("button").click(function(){
    $("div").html("Hello <b>world</b>!");
}); 

答案 3 :(得分:0)

我建议使用firebug调整选择器。

除此之外,你不能为每个div设置唯一的ID吗?

答案 4 :(得分:0)

Html:

<div class="button-wrapper">
    <button class="button-class">Click here</button>
</div>
<div class="button-wrapper">
    <button class="button-class">Click here</button>
</div>

JS:

  $.ajax({
//..
      success: function(){
         $(".button-class").click(function(){
           $(this).parent().html("Dynamic Html");
        });
      }
    });

答案 5 :(得分:0)

您应该知道需要加载成功函数的日志,例如:setInterval(myFunction,2500);