在页面上,我有几个元素需要执行重复操作。为了避免每次都遍历DOM,我想在数组(或对象)中存储对所有这些元素的引用。
这些元素中的每一个都有一个id。
最有效的是:将ID存储在我的数组中,还是存储元素本身?
如果我存储了id,那么每次我想访问我需要调用getElementById的元素时。如果我自己存储元素,那么我的感觉是它需要浏览器更多的“努力”(虽然我不知道它在实践中是如何工作的,并且有兴趣了解更多)。
答案 0 :(得分:3)
存储元素引用的效率要高得多,而不仅仅是id
,因为如你所说,当你去对它进行操作时,你会避免查找。
存储元素引用的缺点是你有一个元素引用(这是整点),所以如果你从DOM中删除元素,你必须确保也会释放您对它的引用,否则它将保留在内存中。如果这些元素总是存在于你的页面上并且永远不会被删除,那很好,尽管我会推荐一个unload
处理程序来释放你对元素的所有引用,只是为了确保IE的旧版本不做愚蠢的事情就像在用户离开页面后保持它们一样。
答案 1 :(得分:1)
您不是将元素存储在数组中,而是存储DOM中元素的引用。我将存储对元素的引用而不是存储其ID。