$(“#ELEMENT_ID”)vs $('div [id =“ELEMENT_ID”]')

时间:2012-04-21 10:55:42

标签: javascript jquery performance jquery-selectors css-selectors

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

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

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

3 个答案:

答案 0 :(得分:4)

  

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

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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

  

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

对于div[ID=something]选择器我不太确定,但我怀疑它是否会比#ID更快。我会run a performance benchmark and check the results

PS:jQuery ID selector页面上有一个有趣的说明:

  

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

相关问题