Javascript效率问题:多个getElementById()vs getElementsByTagName()并循环结果

时间:2009-09-30 22:56:51

标签: javascript dom performance

我想知道使用document.getElementById()多次更有效率或使用document.getElementsByTagName()并循环查找特定元素ID的结果?

1 个答案:

答案 0 :(得分:5)

一切都取决于。你有多少具有给定ID的元素?有多少具有相同标签名称的元素?

例如,如果您想要ID为1和3的元素,并且您拥有:

<ul>
  <li id="1">1</li>
  <li id="2">2</li>
  <li id="3">3</li>
  <!-- Followed by 10,000 more li tags -->
</ul>

你最好两次打电话给getElementById()。但是如果你想要除了ID 15以外的所有东西,你可能最好不要做列表和检查ID。

另一种方法是将类添加到要选择的特定元素。然后你可以按类选择(也许用JQuery class selector),这将为你提供良好的表现。

请注意,Javascript性能差异很大between browsers甚至versions of browsers之间。最好对目标浏览器进行一些测试。