嵌套DIV中的HTML不会更改

时间:2012-02-08 10:11:58

标签: javascript jquery html

我的页面中有这样的内容:

<div id="test">
  <div class="item">Test</div>
  <div class="item">Test</div>
  <div class="item">Test</div>
  <div class="item">Test
    <div class="container">
      <div class="item">Test2</div>
      <div class="item">Test2</div>
      <div class="item">Test2</div>
    </div>
  </div>
</div>

现在我想做这样的事情:

$.each(this.find(".item"), function(index, value) {
    $(value).html("Test" + $(value).html());
});

当然我想在循环中做更多的东西,但这只是一个例子。当我这样做时,所有“Test”都会变成“TestTest”,但“Test2”不会变成“TestTest2”。有没有办法选择这些项目,即使有另一个项目?顺便说一句:每个项目都可能有一个conatiner。即使是那些已经嵌套的人。

1 个答案:

答案 0 :(得分:3)

$(value).html("Test" + ...)的调用实际上删除并重新添加了元素,因此迭代的任何后代元素(具有类item)已经从DOM中删除。

尝试以下方法:

this.find(".item").each(function(index, value) {
  $(value).prepend("<span>Test</span>");
});