我不知道我的Chrome浏览器会发生什么,但突然之间在控制台中执行$('div#my')
的行为与以前完全不同。有一次我经历过这个,但后来它以某种方式恢复了,所以我不知道如何重现它,今天又发生了。
请观看视频:http://peaceevertvimg.org/jq.php。
在视频中,我在两个不同的浏览器中$('div#my')
:
第一个浏览器不是chrome,但我相信它模仿Chrome,所以它的行为是我所期望的,而且我几乎总是经历过。因为目前我的chrome没有按预期工作,所以我必须用它来演示我的预期:当你做$('div#my
)时,你直接看到html TAG,你可以很容易地看到标签的html内容,这是“ “在这种情况下。”
相比之下,在我的Chrome浏览器中,结果是不同的,当我$('div#my')
时,我看到一个对象(n.fn.init
),我无法立即看到“某事”,哪个是当然很不方便。但之前,我很确定它不是这样的,行为与第一个浏览器中的行为完全一样。
此视频中的简单网页为http://peaceevertvimg.org/jquery.php,您可以在Chrome浏览器中自行测试。而且我很确定大多数人会看到第一种行为。我的chrome发生了什么?(我已禁用所有扩展并将其更新到最新版本)
顺便说一句,是“HTML标签”和“对象参考”这两个不同结果的正确用语是什么?*************更新*************
如果视频不足以理解我的要求以及我想要解决的问题,这两张图片可能会有所帮助。
你可以看到巨大的差异,第一个更直观,立即揭示关键信息,而第二个不是,至少对我而言。导致这个问题的原因是什么?如何回到第一个?
答案 0 :(得分:0)
$('div#my')
不返回DOM引用。它返回一个围绕找到的元素的jQuery包装器。
$('div#my')[0]
将返回DOM引用。或者,忘记jQuery并使用:
document.getElementById("my");
...您将直接获得DOM参考
此外,由于应该/只会有一个具有给定ID的元素,因此不必使用div#my
,只需使用#my
。
假设我们有<div id=someDiv>
,然后我们写:
console.log($("#someDiv"));
console.log($("#someDiv")[0]);
Chrome显示了这一点:
在第一个日志中,我们看到结果是一个包含一个元素(div)的jQuery对象。在第二个中,我们直接看到元素。
现在,根据您拥有的Chrome版本,您可能会看到第一个仅报告为[对象],但这不会改变基础结果。
答案 1 :(得分:-1)
来自:Devx(http://www.devx.com/codemag/Article/40923)
选择器允许您选择DOM元素,以便您可以应用 使用jQuery的操作方法为他们提供功能。 jQuery使用了 CSS 3.0语法(加上一些扩展)来选择单个或多个 文档中的元素。你可能已经熟悉了CSS 来自HTML样式的语法。即使你不是,也很容易挑选 关键的CSS选择器功能。我会说jQuery 这就是我真正开始使用CSS的原因。您可以使用CSS语法 按ID,CSS类,属性过滤器或按其选择元素 与其他元素的关系。您甚至可以链接过滤条件 一起。看看这个简单的例子,它选择所有第二列 使用简单选择器的表中的TD元素:$(“#gdEntries td:nth-child(2)“)。
jQuery Object:The Wrapped Set:Selectors返回一个jQuery对象 被称为“包裹集”,这是一种类似于阵列的结构 包含所有选定的DOM元素。你可以迭代 包装集像数组或访问单个元素通过 索引器(例如$(sel)[0])。更重要的是,您也可以申请 jQuery针对所有选定元素进行操作。 - 更多信息请访问: http://www.devx.com/codemag/Article/40923#sthash.l8Mo8CbH.dpuf
你所看到的是jQuery.fn.init()返回的jQuery对象。
正在发生的是jQuery()被定义为jQuery.fn.init(),这是另一种说jQuery.prototype.init()的方式,它是选择器函数!这意味着没有人会调用jQuery.fn.init()或jQuery.init(),因为jQuery()IS .init()。
更多信息,请看一下jQuery代码:Help understanding jQuery's jQuery.fn.init Why is init in fn
至于问题的解决方案:https://chrome.google.com/webstore/detail/jquery-console-fix/jlmkkpkcgomkdpfhgjlpaaonhafnjgob?hl=en