jQuery:获取现有HTML,修改一个节点,然后重新注入

时间:2009-10-28 22:25:32

标签: javascript jquery

我有一大堆HTML,我正在使用简单的jQuery选择器检索,如下所示:

<div id="stuff">
 <ul> 
   <li>some</li>
   <li class="ninja">stuff</li>
 </ul>
</div>

我基本上在做:

var myblock = $("#stuff").html();

现在我想在li列表的底部注入一个额外的li元素,其属性与上面的li非常相似,但我想将类忍者更改为类武士。

使用jQuery实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

只需选择<ul>并将<li>附加到

即可
$("#stuff ul").append('<li class="samurai">stuff</li>');

如果您确实想要复制最后一个<li>元素,请更改该类然后添加到列表中,然后您可以执行类似这样的操作

var ul = $("#stuff ul");
ul.append(ul.find('li:last').clone().removeClass().addClass("samurai"));
如果您还想复制事件处理程序,请将true传递给clone()

获取一大块HTML,更改元素然后重新插入的问题是,在重新插入HTML时将被替换的元素上设置的任何事件处理程序都将丢失,因此它更优雅/且不那么繁琐/简单地操纵你需要的DOM部分。