jQuery选择性能比较

时间:2013-11-11 13:27:08

标签: jquery performance

下面提到的两个jQuery选项之间的性能是否存在差异?

jQuery('#someId') 

jQuery('span#someId')

注意:“span”和“#someid”之间没有空格

此外,在ID之前提及像“span”这样的元素类型是否有任何目的或优势?

2 个答案:

答案 0 :(得分:1)

jQuery('#someId')jQuery('span#someId')

等效

由于id是唯一的,所以最好使用jQuery('#someId')

id始终引用唯一元素。

<小时/> jQuery('#someId') - &gt;标识为someId

的元素

jQuery('span#someId') - &gt;标识为someId的span元素

<小时/> Performance Result - jsperf

jQuery('#someId')更快 enter image description here

<小时/> Performance Test of Selectors - jsperf enter image description here


答案 1 :(得分:1)

通过它们应该是相同的,它们不是。只放id总是会更快,因为jQuery首先评估你传递的字符串,以确定它是否使用javascript查询选择器或id选择器。 Here the revelant jQuery code

该beign说,仅使用id将始终返回1个元素,而span#id将返回每个元素。

请在此处查看:http://jsfiddle.net/ZW6Ed/

当然只使用id会更快,因为getElementById扫描DOM并在querySelector没有找到id时停止。

为什么“他们应该是一样的,但他们不是”?因为拥有多个ID不是有效的HTML。