我在一个没有jQuery(或者任何其他使用$
符号作为快捷方式的库)的页面上使用google chrome的开发者工具。当我通过控制台检查$
时(只需输入并按回车键),我得到了以下内容:
$
function () { [native code] }
所以,chrome有一些原生函数可以被$
引用。只有chrome似乎有这个,我不能通过window['$']
访问它,也不能通过document['$']
或this['$']
。
我不知道这个功能是什么。你知道它是做什么的吗?也许你有一些关于它的背景信息?先谢谢你了!
6条答案
按热度按时间6mw9ycah1#
这一情况自去年以来又发生了变化。
devtools控制台提供
$
作为document.querySelector
的别名,沿着many other things;以下是摘录列表:$(selector)
返回第一个带有指定CSS选择器的DOM元素的引用。此函数是document.querySelector()
函数的别名。$$(selector)
返回与给定CSS选择器匹配的元素数组。此命令相当于调用document.querySelectorAll()
。$_
返回最近计算的表达式的值。$0
、$1
、$2
、$3
和$4
命令用作“元素”面板中检查的最后五个DOM元素或“配置文件”面板中选择的最后五个JavaScript堆对象的历史引用。……还有其他一些人。
请注意,它将
$
称为document.querySelector
的别名,但表示$$
“等效于”调用document.querySelectorAll
。两者似乎都不是字面上的真实;$ === document.querySelector
是false
,$$
返回一个 array,而不是NodeList
。8ftvxx2r2#
它是Chrome开发者工具的一个功能(因此无法从页面中获得)。您可以在控制台页面上查看它的文档。
它通过选择器获取一个元素。
Firefox实现了类似的东西
g6baxovj3#
现有的答案已经过时,
$
不是document.getElementById
或document.querySelector
的别名,而是querySelector
的 Package 器。这个 Package 器实际上为要查询其子元素的元素接受一个可选的第二个参数。对于Chrome,这一系列函数在Console Utilities API reference下记录:
$(selector [, startNode])
$(selector)
返回第一个带有指定CSS选择器的DOM元素的引用。当使用一个参数调用时,此函数是document.querySelector()函数的快捷方式。$$(selector [, startNode])
$$(selector)
返回与给定CSS选择器匹配的元素数组。此命令相当于调用Array.from(document.querySelectorAll())
。一米九一
$x(path)
返回与给定XPath表达式匹配的DOM元素数组。Firefox还在Web Console Helpers下记录了这些函数的实现(目前相同,除了
$x
允许第三个参数)。我不知道Safari/WebKit是否/在哪里记录了它,但它也像Chrome一样实现了它们。
请注意,这些值只是控制台内的默认值,而不是页面本身的默认值。例如,如果页面通过包含jQuery来设置变量,则该变量将优先使用,并且控制台将使用页面本身的值,以便
$('p')
将返回jQuery对象,而不仅仅是第一个p
元素。bfrts1fy4#
从到开发工具的链接来看,它现在使用document.querySelector()而不仅仅是getElementById()。
kyxcudwk5#
https://developers.google.com/chrome-developer-tools/docs/console
它只是快速访问document.getElementById。
o8x7eapl6#
Webkit检查器中有两个选择器,与Mootools相同:
$
和$$
你可以在上面找到一些信息,here
他们只是来帮你调试的。