【发布时间】:2013-02-09 09:07:03
【问题描述】:
在 Web 浏览器中使用 JavaScript 时,以下各项之间是否存在性能差异:
现有的 getElementById
document.getElementById("elem");
使用 #id 的查询选择器
document.querySelector("#elem");
使用 [id=elem] 的查询选择器
document.querySelector("[id=elem]");
我假设第一个最快(只需查找带有 ID 的元素)。最后一个看起来也是不好的做法。我喜欢第二个,因为对所有内容都使用 querySelector 使代码易于阅读。
有什么建议吗?
【问题讨论】:
-
Here's 特定测试的快速链接
-
有很多东西可以影响这一点,你的 DOM 有多大?他们在 DOM 中要遍历多少个子-父-子节点?将问题中的代码与 DOM 中的单个元素一起使用没有区别。即使是链接测试也接近于无意义。问题是,你什么时候使用哪一个?显然在寻找课程时不能使用getElementById,但可以使用document.querySelector(".myclass")
-
@FrançoisWahl:我认为 OP 专门询问了 id。显然你会使用
getElementsByClassName来上课。 -
为什么这个问题被关闭为“不具建设性”?我作为开发人员来到这里是为了找出其中哪个更快!
标签: javascript html dom