detach() 会保留所有绑定的事件、附加的数据,这一点与 remove() 不同。
remove掉元素后,元素再也找不回了。但是detach还能找回来,还能保留下来。
实现方式如下代码:
<html> <head> <script type="text/javascript" src="/jquery/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ var p;flag=1; $("button").click(function(){ if(flag==1) { p=$("p").detach(); flag=0; } else{ flag=1; p.insertBefore("button"); } }); }); </script> </head> <body> <p>This is a paragraph.</p> <button>删除 p 元素</button> </body> </html>
可见,detach方法会返回被删除元素的数据,可以赋值给一个变量,然后,插入到另一个元素前面。