[英]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.