0

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

jQuery('#someId') 

相对

jQuery('span#someId')

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

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

4

2 回答 2

1

尽管它们应该是相同的,但它们不是。只放id总是会更快,因为 jQuery 首先评估您传递的字符串以确定它是使用 javascript 查询选择器还是 id 选择器。这里有相关的 jQuery 代码

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

在这里查看:http: //jsfiddle.net/ZW6Ed/

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

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

于 2013-11-11T13:56:03.343 回答
1

jQuery('#someId')相当于jQuery('span#someId')

因为id是独一无二的所以更好用jQuery('#someId')

id总是指独特的元素。


jQuery('#someId')-> 带有 id 的元素someId

jQuery('span#someId')-> 带 id 的 Span 元素someId


性能结果 - jsperf

jQuery('#someId')是比较快的 在此处输入图像描述


选择器的性能测试 - jsperf 在此处输入图像描述


于 2013-11-11T13:28:06.937 回答