在一个页面上,我有几个元素需要执行重复操作。为了避免每次都遍历 DOM,我想将对所有这些元素的引用存储在一个数组(或一个对象)中。
这些元素中的每一个都有一个 id。
什么是最有效的:将 id 存储在我的数组中,还是存储元素本身?
如果我存储 ID,那么每次我想要访问我需要调用 getElementById 的元素时。如果我自己存储元素,那么我的感觉是浏览器需要更多的“努力”(尽管我不知道它在实践中是如何工作的,并且有兴趣了解更多)。
最佳答案
存储元素引用比仅存储 id
要高效得多,因为正如您所说,您在对其进行操作时避免了查找。
存储元素引用的缺点是你有一个元素的引用(这就是重点),所以如果你从 DOM 中删除元素,你必须确保同时释放您对它的引用,否则它将保留在内存中。如果这些元素始终存在于您的页面上并且永远不会被删除,那很好,但我会推荐一个 unload
处理程序来释放您对这些元素的所有引用,以确保旧版本的 IE 不会做一些愚蠢的事情,比如即使在用户离开页面后仍保留它们。
关于javascript - 存储元素与其 id,哪个最有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5919830/