下面提到的两个 jQuery 选择之间的性能是否存在差异?
jQuery('#someId')
相对
jQuery('span#someId')
注意:“span”和“#someid”之间没有空格
此外,在 ID 之前提及“span”等元素类型是否有任何目的或优势?
下面提到的两个 jQuery 选择之间的性能是否存在差异?
jQuery('#someId')
相对
jQuery('span#someId')
注意:“span”和“#someid”之间没有空格
此外,在 ID 之前提及“span”等元素类型是否有任何目的或优势?
尽管它们应该是相同的,但它们不是。只放id
总是会更快,因为 jQuery 首先评估您传递的字符串以确定它是使用 javascript 查询选择器还是 id 选择器。这里有相关的 jQuery 代码。
也就是说,仅使用 id 将始终返回 1 个元素,而span#id
将返回每个元素。
在这里查看:http: //jsfiddle.net/ZW6Ed/
当然,仅使用 id 会更快,因为getElementById
扫描 DOM 并在找到 id 而没有找到 id 时停止querySelector
。
为什么“他们应该是一样的,但他们不是”?因为拥有多个 id 不是有效的 HTML。
jQuery('#someId')
相当于jQuery('span#someId')
因为id
是独一无二的所以更好用jQuery('#someId')
。
id
总是指独特的元素。
jQuery('#someId')
-> 带有 id 的元素someId
jQuery('span#someId')
-> 带 id 的 Span 元素someId
jQuery('#someId')
是比较快的