例如,当我在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有什么问题?
答案 0 :(得分:4)
默认情况下,Chrome控制台中的$
是一个特殊的选择器功能。如果您在未加载jQuery或其他任何覆盖$
的页面上仅在控制台中运行$
,您会看到以下内容:
function $(selector, [startNode]) { [Command Line API] }
但是,如果页面覆盖了$
值,则控制台将使用页面中的值。因此,如果页面已加载jQuery,那么您将获得一个jQuery对象。