为什么Chrome的JS控制台返回DOM元素而不是jQuery对象?

时间:2016-05-15 05:19:10

标签: javascript jquery html google-chrome

例如,当我在Chrome的JavaScript控制台中运行以下代码时,

$("p")

我得到以下输出:

<p>...</p>

正如我们所看到的,我们得到一个DOM元素而不是一个jQuery对象。 但是当我不使用Chrome的JS控制台而是直接在网页中使用代码以及一些console.log()时,我会得到一个jQuery对象。

[object Object]{0: HTMLParagraphElement {...}, 1: HTMLParagraphElement {...}, ...

从上面我们可以确定,当直接使用Chrome的JS控制台时,选择器'always'返回一个DOM元素而不是jQuery对象。当我在Edge浏览器的JS控制台中测试相同的选择器代码时,我得到了正确的jQuery对象。 Chrome有什么问题?

编辑:enter image description here

1 个答案:

答案 0 :(得分:4)

默认情况下,Chrome控制台中的$是一个特殊的选择器功能。如果您在未加载jQuery或其他任何覆盖$ 的页面上仅在控制台中运行$,您会看到以下内容:

function $(selector, [startNode]) { [Command Line API] }

但是,如果页面覆盖了$值,则控制台将使用页面中的值。因此,如果页面已加载jQuery,那么您将获得一个jQuery对象。