在Chrome控制台行为中双倍美元$$()与美元符号$()

时间:2016-02-28 13:05:26

标签: javascript google-chrome google-chrome-devtools

在我们的项目中,当一个美元符号在Chrome控制台中使用$()与两个美元符号$$()时,有一个不同的功能,除了 $$()返回的已知差异数组$()返回第一个元素。

例如,特定元素的选择器,包含一美元和两美元查询:

$$(".my-class[my-attribute='trump']") //works

$('.my-class[my-attribute=sanders]') //works

$$('.my-class[my-attribute=trump]') //not work

这种行为的来源和解释是什么?

1 个答案:

答案 0 :(得分:21)

来自Chrome Developer Tools documentation

  

选择元素

     

有一些选择元素的快捷方式。与输入标准版本相比,这些可以节省宝贵的时间。

     

$()返回与指定的CSS选择器匹配的第一个元素。   它是document.querySelector()的快捷方式。

     

$$()返回一个数组   与指定的CSS选择器匹配的所有元素。这是个   document.querySelectorAll()的别名

     

$ x()返回一个数组   与指定的XPath匹配的元素。

当您使用querySelector(或$)时,结果是一个元素或null。当您使用$$时,结果不是元素,而是Array,可以轻松迭代。这与原始querySelectorAll不同,后者返回NodeList,这有点难以覆盖所有条目。

关于引用:当然它的作用相同。参见:

enter image description here

结论:引用trump是没用的。你可能也会疯了。