繁体   English   中英

Chrome JavaScript控制台行为异常[关闭]

[英]Chrome javascript console acts strange [closed]

运行此代码会交替显示<div id="c"></div>和Chrome JavaScript控制台中的可扩展 HTMLDivElement

$(function() {
    console.log( $("#c")[0] );
});

<div id="c"></div>

如果我运行alert()而不是console.log() ,它将始终返回[object HTMLDivElement]。

并不是说它会打扰我很多,但是如果输入没有变化,这种输出是否应该保持恒定? 那么,Chrome控制台如何呈现对象是某种错误?

顺便说一句,我无法通过jsfiddle重现该问题。 我的Chrome浏览器的版本为21.0.1180.89,而jQuery的版本为1.6.4。


编辑:示例:我刷新页面,控制台显示<div id="c"></div> 然后,我再次刷新页面,控制台现在显示可扩展的HTMLDivElement ,依此类推。

console.log可以向您显示对象。 警报显示字符串,数字,原始类型,您传递一个对象,警报将说这是一个对象。 因为在您的情况下,object的tostring()返回[object HTMLDivElement]。

在Chrome控制台中, $已经是document.getElementById()的引用,因此请尝试使用jQuery而不是$

jQuery(function() {
    console.log( jQuery("#c")[0] );
});

这样可以解决问题,并提供统一的输出。 正如其他人回答的那样,警报只是应用toString()方法(因为警报函数期望输出字符串)。

JavaScript警报正在向您显示该对象的toString()结果,因为它无法显示字符串以外的任何内容。 控制台能够为您提供对象的交互式表示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM