0

对于 DIV 元素,我想知道哪些选择器可能更快

$("#ELEMENT_ID")
$('div[id="ELEMENT_ID"]')

仅使用 DIV id 或仅使用其 ID 将搜索限制为 DIV 元素在性能上是否有任何差异?

4

3 回答 3

4

或仅使用其 ID 将搜索限制为 DIV 元素?

请注意,ID 是唯一的,因此如果您在多个元素上使用一个 ID,那是错误的做法。

div[id="ELEMENT_ID"]甚至div#ELEMENT_ID通常是多余的,除非您在多个页面中包含一个样式表,并且不同的页面对不同的元素使用一个 ID。这样做可能不是一个好主意,因为它可能会使阅读代码的人感到困惑。

于 2012-04-21T10:58:57.447 回答
3

检查 jsPerf 表明只有 id 选择器要快得多。http://jsperf.com/id-vs-data-id/4

于 2012-04-21T11:03:56.020 回答
2

对于#IDdiv#ID选择器,jQuery 提到:

对于 id 选择器,jQuery 使用 JavaScript 函数 document.getElementById(),效率极高。当另一个选择器附加到 id 选择器时,例如 h2#pageTitle,jQuery 在将元素识别为匹配之前执行额外的检查。

对于div[ID=something]选择器,我不太确定,但我怀疑它是否会比#ID. 我会运行性能基准并检查结果

PS:在jQuery ID 选择器页面上有一个有趣的注释:

与往常一样,请记住,作为开发人员,您的时间通常是最宝贵的资源。不要专注于优化选择器速度,除非很明显需要提高性能。

于 2012-04-21T11:08:14.310 回答