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

原文地址:https://www.cnblogs.com/yigeqi/p/3941780.html