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);