神奇的 adoptNode 元素克隆 – 博客更新(一百一十一)

510°C 15-08-2022
最近更新于:2022-10-10 11:56:25

文章摘要chatGPT

standby chatGPT responsing..

通常,我们使用 js 来克隆某一元素时一般会优先考虑 cloneNode(deep) 方法,通过该方法我们可以非常轻松实现元素克隆。当我们使用 on.xxx 为被克隆元素添加方法后,再使用 cloneNode 对其进行克隆后的元素将不再附带其自定义事件,也就是说:cloneNode()无法克隆事件(除元素内联事件外),这就导致其在部分场景无法适用。(注:在 jQuery 中的替代为 clone() 方法,该方法可以完整克隆自定义事件)
后了解到 importNode()及adoptNode(),前者与 cloneNode 一样无法克隆事件,后者则不同:adoptNode(Node)方法用于从另外一个文档中获取一个节点(可以是任何节点类型) adoptNode()会将原文档中的节点删除,类似元素“剪贴”后保留所有事件,这也是我们想要的。

额外内容

搜了一圈也没找到替代方法,一般就让用jquery,估计这个方法知道这个隐藏属性的也比较少,临时使用简单记录一下。


评论留言

既来之则留之~ 欢迎在下方留言评论,提交评论后还可以撤销或重新编辑。(Valine 会自动保存您的评论信息到浏览器)