ChatGPT解决这个技术问题 Extra ChatGPT

==$0(double 等于零美元)在 Chrome 开发者工具中是什么意思?

在 Google Chrome 的开发者工具中,当我选择一个元素时,我会在所选元素旁边看到 ==$0。这意味着什么?

https://i.stack.imgur.com/C2eGI.jpg

它是选定的 DOM 节点 ID。尝试选择任何节点并在控制台中写入 $0 看看会发生什么;)
这很令人困惑。看起来有人写了一些他们忘记放入脚本标签的javascript。我花了整整十分钟试图找出我在代码中搞砸的地方......
我认为只有单击的行中的不同背景颜色就足够了...我认为不需要将 == $0 添加到 html 源... 坏主意。 Chrome doind Chrome-ish 的东西。

P
ProllyGeek

它是最后选择的 DOM 节点索引。 Chrome 会为您选择的每个 DOM 节点分配一个索引。因此 $0 将始终指向您选择的最后一个节点,而 $1 将指向您之前选择的节点。把它想象成一堆最近选择的节点。

例如,考虑以下

<div id="sunday"></div>
<div id="monday"></div>
<div id="tuesday"></div>

现在您打开了 devtools 控制台并按上述顺序选择了 #sunday#monday#tuesday,您将获得如下 id:

$0 -> <div id="tuesday"></div> 
$1 -> <div id="monday"></div>
$2 -> <div id="sunday"></div>

注意:知道节点在您的脚本(或控制台)中是可选的可能很有用,例如,一个流行的用途是角度元素选择器,因此您可以简单地选择您的节点,然后运行:

angular.element($0).scope()

瞧,您可以通过控制台访问节点范围。


这有什么用途/好处?
我相信它对调试很有帮助。使用简单选择器访问被检查元素的能力在调试期间的许多情况下都有帮助。
那么在 UI 中总是显示 == $0 有什么好处呢?任何知道 $0 的人都已经知道它是哪个元素,而对于不知道的人来说它毫无意义。
@joe_young,我认为好处是能够在调整内容时快速访问控制台中的元素。这是我放在一起演示它的视频! youtu.be/AKLdx8z6aDk
仅供参考:$0 在运行时不起作用:setTimeout(() => console.log($0), 0); // $0 is not defined 示例:![Chrome console](i.stack.imgur.com/gOYfm.png)
A
Ani Menon

$0 返回最近选择的元素或 JavaScript 对象,$1 返回第二个最近选择的元素,以此类推。

参考:Command Line API Reference


S
Siva Prakash

这里的其他答案清楚地解释了它的含义。我喜欢解释它的用途。

您可以在 elements 标签中选择一个元素并切换到 Chrome 中的 console 标签。只需输入 $0 or $1 或任何数字并按 Enter 键,该元素就会显示在控制台中供您使用。

https://i.stack.imgur.com/4Sk86.png


O
Oleg Valter is with Ukraine

这是 Chrome 的提示,告诉您如果您在控制台上键入 $0,它将等同于该特定元素。

在内部,Chrome 维护一个堆栈,其中 $0 是被选中的元素,$1 是最后被选中的元素,$2 是在 $1 之前被选中的元素,依此类推。

以下是它的一些应用:

从控制台访问 DOM 元素:$0

从控制台访问他们的祖先:$0.parentElement

从控制台更新它们的属性:$1.classList.add(...)

从控制台添加/更新元素的样式:$0.style.backgroundColor="aqua"

从控制台触发 JS 事件:$0.click()

并做很多更复杂的事情,比如: $0.appendChild(document.createElement("div"))

观看所有这些操作:

https://i.stack.imgur.com/fz9LW.gif

支持声明:

是的,我同意有更好的方法来执行这些操作,但是这个功能可以在某些复杂的场景中派上用场,例如当需要单击 DOM 元素但无法从 UI 中这样做时,因为它被其他元素,或者由于某种原因,此时在 UI 上不可见。


M
Muhammed Albarmavi

我会说这只是在调试时获取 html 元素引用的简写语法,通常这类任务将由这些方法执行

document.getElementById , document.getElementsByClassName , document.querySelector

因此,单击 html 元素并在控制台中获取引用变量 ($0) 可以在白天节省大量时间