jquery的.detach()方法

时间:2023-03-10 05:52:25
jquery的.detach()方法

.detach()就是从DOM中删除所有匹配的元素。

与.remove()方法不同的是, 这个方法不会把匹配的元素从jQuery对象中删除,所有绑定的事件、附加的数据等都会保留下来,因而可以在将来再使用这些匹配的元素。

只是有个小地方需要注意下:

<ul class="level-1">
<li class="item-b">B
<ul class="level-3">
<li class="item-1">1</li>
</ul>
</li>
</ul>
<div id='content'>content</div>

现在先把.level-3删除掉,然后再append到#content里,如果写成这样:

$('ul').detach(".level-3");
$('#content').append($(".level-3"));

上面这样是没有效果的,得下面这样:

var a=$('ul').detach(".level-3");
$('#content').append(a);

其实上面这样依然不对,最后#content节点结构是:

<div id="content">content
<ul class="level-1">
<li class="item-b">B
</li>
</ul>
<ul class="level-3">
<li class="item-1">1</li>
</ul>
</div>

改成下面这样就可以了。

var a=$('.level-3').detach();
$('#content').append(a);