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

Lik*_*ese 2 javascript performance dom

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

leo*_*onm 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>
Run Code Online (Sandbox Code Playgroud)

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

另一种方法是将类添加到要选择的特定元素.然后你可以按类选择(也许使用JQuery类选择器),这将为你提供良好的性能.

请记住,浏览器之间甚至浏览器版本之间的 Javascript性能差别很大.最好对目标浏览器进行一些测试.