由于$$
它只是 的包装器querySelectorAll
,因此您可以传递任何有效的选择器。
“我可以在 $$ 对象上执行哪些类型的函数,而我无法用 jQuery ($) 对象执行这些函数?”
首先,$$
不是 jQuery 之类的对象。它是一个对象,但它只是一个简单的函数对象,它是document.querySelectorAll
. 它返回一个NodeList
它找到的元素。
据我所知,它唯一支持但 Sizzle 没有特别支持的是:nth-of-type
.
(当然 Sizzle 默认是qsa
在你提供一个有效的选择器时,所以你可以nth-of-type
在也支持的浏览器中传递给 jQuery 函数qsa
。)
使用 Sizzle,有几个不支持的选择器querySelectorAll
,因此您可以在技术上使用 jQuery/Sizzle 做更多事情。
其中包括:
:eq()
:gt()
:lt()
:first
:last
:not()
(当你给它多个选择器时。:not()
支持简单值qsa
。)
:animated
:input
:button
:checkbox
:even
:odd
:has()
:image
:password
:radio
:reset
:selected
:submit
:text
:visible
...仅举几例。
请记住,Sizzle首先尝试使用querySelectorAll
. 如果你传递了一个专有的选择器,它就会默认使用 Sizzle 自己的引擎。
由于qsa
通常比 Sizzle 快,因此建议考虑使用上面列出的专有选择器的替代品以提高性能。
另请注意,除了在控制台中之外,Webkit
没有在$$
任何地方定义。除非您使快捷方式可用,否则该快捷方式在您的脚本中不可用。$$