gpt4 book ai didi

javascript - 如何建立一个不会改变的DOM缓存

转载 作者:行者123 更新时间:2023-11-27 22:40:43 34 4
gpt4 key购买 nike

所以我尝试构建 DOM 的缓存:

var DOM = document.getElementsByTagName('*');

但是,DOM 变量似乎是动态引用,因此如果我更改 DOM 中的元素,DOM 变量也会更改。

我尝试遍历 DOM 变量并使用 cloneNode 方法创建每个节点的深拷贝。这是因为当我更改 DOM 时它不会更改。但是,问题是当您将克隆节点与 === 运算符进行比较时,克隆节点不等于其原始 DOM 节点。

总而言之,我希望创建一个 DOM 缓存,该缓存不会更改但其节点仍等于原始 DOM 节点。

最佳答案

document.getElementsByTagName 返回一个“实时”NodeList,这根本不是您所想的。当您访问列表时,每次都会遍历 DOM(实现可能会对其进行缓存)以获取结果。这给人一种列表正在运行的错觉。

document.getElementsByTagName("div") === document.getElementsByTagName("div") 
//true

要执行您想要的操作,只需将其转换为数组即可。 DOM = [].slice.call(DOM)

关于javascript - 如何建立一个不会改变的DOM缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11061184/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com