Chrome中的$ Variable(美元符号)?

ne5o7dgx  于 2023-05-20  发布在  Go
关注(0)|答案(6)|浏览(160)

我在一个没有jQuery(或者任何其他使用$符号作为快捷方式的库)的页面上使用google chrome的开发者工具。当我通过控制台检查$时(只需输入并按回车键),我得到了以下内容:

$
function () { [native code] }

所以,chrome有一些原生函数可以被$引用。只有chrome似乎有这个,我不能通过window['$']访问它,也不能通过document['$']this['$']
我不知道这个功能是什么。你知道它是做什么的吗?也许你有一些关于它的背景信息?先谢谢你了!

6mw9ycah

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.querySelectorfalse$$返回一个 array,而不是NodeList

8ftvxx2r

8ftvxx2r2#

它是Chrome开发者工具的一个功能(因此无法从页面中获得)。您可以在控制台页面上查看它的文档。
它通过选择器获取一个元素。
Firefox实现了类似的东西

g6baxovj

g6baxovj3#

现有的答案已经过时,$不是document.getElementByIddocument.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元素。

bfrts1fy

bfrts1fy4#

从到开发工具的链接来看,它现在使用document.querySelector()而不仅仅是getElementById()。

o8x7eapl

o8x7eapl6#

Webkit检查器中有两个选择器,与Mootools相同:$$$
你可以在上面找到一些信息,here
他们只是来帮你调试的。

相关问题