javascript - 存储元素与其 id,哪个最有效

标签 javascript dom getelementbyid

在一个页面上,我有几个元素需要执行重复操作。为了避免每次都遍历 DOM,我想将对所有这些元素的引用存储在一个数组(或一个对象)中。

这些元素中的每一个都有一个 id。

什么是最有效的:将 id 存储在我的数组中,还是存储元素本身?

如果我存储 ID,那么每次我想要访问我需要调用 getElementById 的元素时。如果我自己存储元素,那么我的感觉是浏览器需要更多的“努力”(尽管我不知道它在实践中是如何工作的,并且有兴趣了解更多)。

最佳答案

存储元素引用比仅存储 id 要高效得多,因为正如您所说,您在对其进行操作时避免了查找。

存储元素引用的缺点是你有一个元素的引用(这就是重点),所以如果你从 DOM 中删除元素,你必须确保同时释放您对它的引用,否则它将保留在内存中。如果这些元素始终存在于您的页面上并且永远不会被删除,那很好,但我会推荐一个 unload 处理程序来释放您对这些元素的所有引用,以确保旧版本的 IE 不会做一些愚蠢的事情,比如即使在用户离开页面后仍保留它们。

关于javascript - 存储元素与其 id,哪个最有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5919830/

相关文章:

javascript - 异步删除 DOM 元素的子元素?

Javascript 函数在传递元素 ID 与对其进行硬编码时会改变行为

javascript:使用 getElementByID 填充多个 div

javascript - 何时定义模块以及何时仅使用 requireJS 请求文件

javascript - Three.JS中使用switch语句加载多个对象

javascript - 我的 Dijkstra 算法实现不返回最短路径

javascript - RightJS: getElementById 与 $ ('element_id' )

javascript - 如何使 <tr> 充当固定的顶部栏?

java - 获取节点原始文本

javascript - 使用 Javascript 获取 HTML 元素样式