为什么有时jQuery选择器会返回类似“a.fn.init”的内容?

我不知道我的Chrome浏览器会发生什么,但突然之间在控制台中执行$('div#my')的行为与以前完全不同。 有一次我经历过这个,但后来它以某种方式恢复了,所以我不知道如何重现它,今天又发生了。

请观看video: http : //peaceevertvimg.org/jq.php 。

在video中,我在两个不同的浏览器中执行$('div#my')

第一个浏览器不是chrome,但我相信它使用chrome的内核,所以它的行为是我所期望的,因为目前我的chrome没有按预期工作所以我必须用它来certificate我的预期:当你做$('div#my )`你直接看到html TAG,你可以很容易地看到标签的html内容,在这种情况下是“某事”。

相比之下,在我的chrome浏览器中,结果是不同的,当我执行$('div#my')我看到一个Object( n.fn.init ),我无法立即看到“某事”,哪个是当然很不方便。 但之前,我很确定它不是这样的,行为与第一个浏览器中的行为完全相同。

这个video中的简单网页是http://peaceevertvimg.org/jquery.php ,您可以在Chrome浏览器中自行测试。 而且我很确定大多数人都不会看到我的video中显示的结果。 我的chrome发生了什么?(我已禁用所有扩展并将其更新到最新版本)

如果您为任何给定页面打开Chrome的开发人员工具控制台,只需调用$即可看到

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

如果你在加载了jQuery的页面上做同样的事情,你会看到

 function (a,b){return new n.fn.init(a,b)} 

在给定上述信息的情况下,评估$($0)将取决于页面的上下文。 您将获得元素引用或jQuery对象。