DOM节点删除之保留数据的删除操作detach()
2017-08-02 20:15
344 查看
如果我们希望临时删除页面上的节点,但是又不希望节点上的数据与事件丢失,并且能在下一个时间段让这个删除的节点显示到页面,这时候就可以使用detach方法来处理
detach从字面上就很容易理解。让一个web元素托管。即从当前页面中移除该元素,但保留这个元素的内存模型对象。
来看看jquery官方文档的解释:
detach从字面上就很容易理解。让一个web元素托管。即从当前页面中移除该元素,但保留这个元素的内存模型对象。
来看看jquery官方文档的解释:
这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。 $("div").detach()这一句会移除对象,仅仅是显示效果没有了。但是内存中还是存在的。当你append之后,又重新回到了文档流中。就又显示出来了。
<html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script> <style type="text/css"> p { color: red; } </style> </head> <body> <p>P元素1,默认给绑定一个点击事件</p> <p>P元素2,默认给绑定一个点击事件</p> <button id="bt1">点击删除 p 元素</button> <button id="bt2">点击移动 p 元素</button> <script type="text/javascript"> // $('p').click(function(e) { // alert(e.target.innerHTML) // }) var p; $("#bt1").click(function() { if (!$("p").length) return; //去重 //通过detach方法删除元素 //只是页面不可见,但是这个节点还是保存在内存中 //数据与事件都不会丢失 p = $("p").detach() }); $("#bt2").click(function() { //把p元素在添加到页面中 //事件还是存在 $("body").append(p); }); </script> </body> </html>
相关文章推荐
- DOM节点删除之保留数据的删除操作detach()
- DOM节点删除之保留数据的删除操作detach()
- DOM节点删除之保留数据的删除操作detach()
- javascript 原生方法对dom节点的操作,创建、添加、删除、替换、插入、复制、移动等操作
- Query节点操作,jQuery插入节点,jQuery删除节点,jQuery Dom操作
- Zookeeper命令行操作(常用命令;客户端连接;查看znode路径;创建节点;获取znode数据,查看节点内容,设置节点内容,删除节点;监听znode事件;telnet连接zookeeper)
- 3.2.4: jQuery的DOM操作之删除节点
- 删除重复数据只保留一条的操作
- 数据结构:单链表(二)之链表节点排序,升序插入数据,删除指定的所有节点,翻转链表操作
- 链表循环保留M个节点 然后删除N个节点 重复操作到链表尾部
- jQueryDom操作之删除节点
- DOM删除节点的操作
- DOM(一)-18-(节点操作-删除节点)
- Zookeeper命令行操作(常用命令;客户端连接;查看znode路径;创建节点;获取znode数据,查看节点内容,设置节点内容,删除节点;监听znode事件;telnet连接zookeeper)
- javascript操作DOM--添加、删除节点的简单实例
- javascript中dom节点操作(创建节点、增加节点、删除节点、克隆节点)
- DOM节点删除之detach()和remove()区别
- DOM——节点删除.empty()、remove()和.detach()
- jQuery的DOM操作之删除节点示例
- jQuery节点操作,jQuery插入节点,jQuery删除节点,jQuery Dom操作