在jQuery中,选择器 $('[id = foo]')效率低于 $('#foo')?
答案 0 :(得分:16)
简短易行:是!
长篇故事(实际上仍然很短)
$('[id=foo]')
使用Sizzle(css查询引擎)来选择元素,而
$('#foo')
直接拨打getElementById
。
要讲一个非常长的故事,我们开始:$('[id=foo]')
是使用通用选择器的$('*:[id=foo]')
的同义词。这意味着,它会在您的标记中查询所有节点,然后查看其中哪些节点具有id === foo
(然后希望它只匹配一个元素,ID =唯一)。当然,这是昂贵的,非常昂贵的。这就是为什么你永远不应该写这样的选择器!
如果可能,始终完全符合此条件,例如$('span:[id=foo]')
答案 1 :(得分:1)
对,
jQuery中最快的选择器是ID选择器$('#foo'),因为它直接映射到本机JavaScript方法getElementById()