由于$$它只是 的包装器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没有在$$任何地方定义。除非您使快捷方式可用,否则该快捷方式在您的脚本中不可用。$$