小编tks*_*ksb的帖子

了解 querySelector & querySelectorAll 的控制台输出

谁/什么决定如何写的内容objectconsole

有时你会得到对象文字的可折叠表示,而有时它只是打印DOM结构。

鉴于此 HTML:

<div class="container">
  <video src="low.mp4"></video>
  <video src="high.mp4"></video>
  <video src="mega.mp4"></video>
</div>
Run Code Online (Sandbox Code Playgroud)

如果我们点击console(WebKit/Firebug):

> var firstVideo = document.querySelector('video')
Run Code Online (Sandbox Code Playgroud)

进而:

> firstVideo
Run Code Online (Sandbox Code Playgroud)

它返回:

<video src=?"low.mp4">?</video>?
Run Code Online (Sandbox Code Playgroud)

同时,假设我们有另一个对象,例如:

var guitar = { name:'Stratocaster', strings:6 }
Run Code Online (Sandbox Code Playgroud)

向控制台询问:

> guitar
Run Code Online (Sandbox Code Playgroud)

给我们:

控制台输出

我已经多次遇到这种行为,但通常会通过其他方式回避我的好奇心。现在有点痛苦,所以我正在研究更多。仅仅是因为所讨论的对象一个DOM元素而检查员只是在帮助我们吗?

(我意识到我的例子有点奇怪(比较DOM对象和文字),但这是说明问题的最简单/最快的方法。)

使用上一个问题中的一些信息,我可以获得有关每个对象的更多信息:

video.constructor 返回:

HTMLVideoElementConstructor 
Run Code Online (Sandbox Code Playgroud)

虽然:guitar.constructor返回:

function Object() {
  [native code]
} 
Run Code Online (Sandbox Code Playgroud)

为什么这有关系?

像这样的情况:

> firstVideo.parentElement
Run Code Online (Sandbox Code Playgroud)

当我必须单独firstVideo.parentElement.offsetHeight跟踪每个元素(即)时,我不能简单地查看此元素并检查其属性,这真是令人失望。

那么,我的理解上的差距在哪里——实际发生了什么?

javascript console selectors-api

5
推荐指数
1
解决办法
6861
查看次数

标签 统计

console ×1

javascript ×1

selectors-api ×1