下面提到的两个jQuery选项之间的性能是否存在差异?
jQuery('#someId')
与
jQuery('span#someId')
注意:“span”和“#someid”之间没有空格
此外,在ID之前提及像“span”这样的元素类型是否有任何目的或优势?
答案 0 :(得分:1)
jQuery('#someId')
与jQuery('span#someId')
由于id
是唯一的,所以最好使用jQuery('#someId')
。
id
始终引用唯一元素。
jQuery('#someId')
- >标识为someId
的元素
jQuery('span#someId')
- >标识为someId
的span元素
jQuery('#someId')
更快
<小时/> Performance Test of Selectors - jsperf
答案 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。