jQuery基础:remove()与 detach()区别
Posted 花雨伞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery基础:remove()与 detach()区别相关的知识,希望对你有一定的参考价值。
1、detach()
- detach() 方法移除被选元素,包括所有文本和子节点。
- 这个方法会保留 jQuery 对象中的匹配的元素,因而可以在将来再使用这些匹配的元素。
- detach() 会保留所有绑定的事件、附加的数据,这一点与 remove() 不同。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> p{ margin: 6px; background: yellow; } p.off{ background: red; } </style> </head> <body> <p>hello</p> how are <p>you?</p> <button>按钮</button> </body> <script src="libs/jquery-1.8.3.min.js"></script> <script type="text/javascript"> $(function(){ $("p").click(function(){ $(this).toggleClass("off"); }) var p; $("button").click(function(){ if(p){ p.appendTo("body"); p = null; }else{ p = $("p").detach(); console.log(p); } }) }); </script> </html>
2、remove()
- 将匹配元素集合从DOM中删除。
- 同时移除元素上的事件及 jQuery 数据。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> p{ margin: 6px; background: yellow; } p.off{ background: red; } </style> </head> <body> <p>hello</p> how are <p>you?</p> <button>按钮</button> </body> <script src="libs/jquery-1.8.3.min.js"></script> <script type="text/javascript"> $(function(){ $("p").click(function(){ $(this).toggleClass("off"); }) var p; $("button").click(function(){ if(p){ p.appendTo("body"); p = null; }else{ p = $("p").remove(); console.log(p); } }); //移除 =》加上,点击没反应,绑定的事件失效 }); </script> </html>
3、empty():移除匹配元素的所有子节点
4、unwrap():将匹配元素集合的父级元素删除,保留自身(和兄弟元素,如果存在)在原来的位置。
以上是关于jQuery基础:remove()与 detach()区别的主要内容,如果未能解决你的问题,请参考以下文章
detach与remove区别,以及detach保留被删除的元素数据,使用
jQuery中的remove()detach()和empty()的区别