首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DOM 节点的克隆与删除

无奈的开头         关于DOM节点操作,如果仅仅是根据标准API来操作,那是最简单不过的了。...但是现实中却哪有这么容易的问题让我们解决,其实不仅仅是节点的克隆与删除节点的添加也是如此,而且添加节点需要考虑的情况更多,这里不详细讲解,只说明大概过程。        ...但是legacy IE却有一个奇怪的bug,那就是通过该方法克隆的副本,却仍含有相关的事件处理函数和用户自定义属性,而且修改删除这些属性或者函数,会影响到源节点的属性。。。着实让人无语。...解决方案另辟蹊径,即可以通过获取副本的HTML字符串,重新构造一个DOM节点,这样根据字符串反系列化的副本就不会包含在js中额外操作的属性或者事件处理程序。         ...删除节点理应没有什么问题,但是legacy IE下仅仅使用removeNode会出现内存泄露问题,被删除节点有部分内存并不会被回收,如果长时间运行该程序,则可能会出现内存耗尽的危险,只有关闭页面才可能回收这些内存

2K70
您找到你想要的搜索结果了吗?
是的
没有找到

DOM节点删除之empty和remove区别

请看下面的HTML: 这是p标签 如果我们通过empty方法移除里面div的所有元素,它只是清空内部的html代码,但是标记仍然留在DOM...例如一段节点,绑定点击事件 这是P段落 $('.hello').on("click",fn) 如果不通过remove方法删除这个节点其实也很简单...,但是两者还是有区别: 要用到移除指定元素的时候,jQuery提供了empty()与remove([expr])二个方法,两个都是删除元素,但是两者还是有区别 empty方法 严格地讲,empty()方法并不是删除节点...,而是清空节点,它能清空元素中的所有后代节点 empty不能删除自己本身这个节点 remove方法 该节点与该节点所包含的所有后代节点将同时被删除 提供传递一个筛选的表达式,删除指定合集中的元素 以上就是二者的区别...删除整个节点 $("#test2").remove() })

1.4K10

javaScript 原生DOM节点操作(最实用的dom节点操作大全)

简单介绍一下DOM DOM (Document Object Model) 译为文档对象模型,是 HTML 和 XML 文档的编程接口。...(childNode); 删除元素节点 fatherNode.removeChild(childNode); 替换节点 fatherNode.replaceChidl(newNode,oldNode);...; 删除属性节点 div.removeAttribute("attr"); 修改属性节点 div.setAttribute("attr","new"); 获取属性节点 div.getAttribute(...简单讲,innerHTML可以在某种特定环境下重构某个元素节点DOM结构,而innerText只能修改文本值 总结 原生的DOM节点操作还是非常简单实用的,除了单词长了一点以外好像也没有什么明显的缺点...,当然当我们刚开始使用DOM节点操作的时候,还是会遇到一些坑的。

1.7K20

获取DOM节点的方法汇总

1.原生获取DOM节点的方法 1.1 通过顶层document节点获取: document.getElementById("ID") document.getElementsByName("Name")...document.querySelector("..."): 返回匹配的第一个节点 document.querySelectorAll("..."): 返回匹配的所有节点 2.jQuery 获取 DOM...A节点的所有祖先节点中的B节点 $("#A").closet("B") 获取A节点的第一个为B的祖先节点 后代 $("#A").children() 获取A节点的直接子节点 $(".A").children....prev() 获取A节点的上一个兄弟节点 $("#A").prevAll() 获取A节点之前的所有兄弟节点 $("#A").prevUntil(".B") 获取A节点之前、B节点之后的所有兄弟节点 $...(如:element.childNodes)时,实际上返回的是包含一些DOM节点的集合,这个集合要么是 HTMLCollection,要么是 NodeList,两者其实都是类数组的对象。

4K10

如何使用Map处理Dom节点

本文浅析一下为什么Map(和WeakMap)在处理大量DOM节点时特别有用。...因此,当不再需要该键时,整个条目就会自动从WeakMap中删除,从而清除更多的内存。这也适用于DOM节点。...但在第二个项从DOM中被移除并发生垃圾回收后,它看起来有点不同: image.png 由于节点引用不再存在于DOM中,整个条目都被从WeakMap中删除,释放了一点内存。...太长不看版 我喜欢为DOM节点使用Map,因为: 节点本身可以作为键。我不需要先在每个节点上设置或读取独特的属性。 和具有大量成员的对象相比,Map(被设计成)更具有性能。...使用以节点为键的WeakMap意味着如果一个节点DOM中被移除,条目将被自动垃圾回收。

10510

jQuery(操作Dom-节点操作①)

目录 创建节点 节点插入 节点删除 节点替换 节点复制 创建节点 document.createElement("li"); //js创建li节点 var $li=$(""); /..."); $div.insertBefore($("ul")); } 节点删除 remove():从DOM删除所有匹配的元素 function remove(){ var $p =...$("p").remove(); $("ul").before($p); } 注意:这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。...empty():删除匹配的元素集合中所有的子节点 function empty(){ $("ul").empty(); } detach():从DOM删除所有匹配的元素 function detach...(){ var $p = $("p").detach(); $("ul").before($p); } 注意:这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素

1.4K20
领券