jQuery选择器 - 什么更快?

chr*_*ler 6 jquery jquery-selectors

$('#content td#foo').show(); $( '#TD富')显示().

td位于内容div的深处.

什么更快?

rah*_*hul 16

你可以简单地写

$("#foo").show();
Run Code Online (Sandbox Code Playgroud)

您不能拥有多个具有相同ID的元素.因此,无需使用任何其他选择器来获取具有特定id的元素.因此可以避免使用td标签选择器.


Nic*_*ver 16

最快的是:

$('#foo').show();
Run Code Online (Sandbox Code Playgroud)

ID必须是唯一的,这会导致浏览器中的哈希表查找以引用DOM元素,并不会比这更快.如果您的ID foo不是唯一的,那么您还有其他问题......这是无效的HTML.


kar*_*m79 8

这两个选择器都将解析为:

$('#foo').show();
Run Code Online (Sandbox Code Playgroud)

但是,手册说:

对于id选择器,jQuery使用JavaScript函数document.getElementById(),这非常有效.当另一个选择器附加到id选择器时,例如h2#pageTitle,jQuery 在将元素标识为匹配之前执行额外的检查.

您可以将上述附加检查视为完全没有意义,除非您在标记中有重复的ID,这在HTML ID属性的定义和使用方面是不正确的.见http://www.w3schools.com/tags/att_standard_id.asp.