在Chrome javascript控制台中,交替显示代码显示<div id="c"></div>
和可扩展 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
,依此类推。
答案 0 :(得分:3)
console.log能够向您显示该对象。 警报显示字符串,数字,基元类型,您传递一个对象,警报将说这是一个对象。因为对象的tostring()在你的情况下返回[object HTMLDivElement]。
答案 1 :(得分:1)
在Chrome控制台中,$
已经是document.getElementById()
的引用,因此请尝试使用jQuery
代替$
jQuery(function() {
console.log( jQuery("#c")[0] );
});
这应解决问题,提供统一的输出。正如其他人回答的那样,警报只是应用了toString()方法(因为警报函数期望输出一个字符串)。
答案 2 :(得分:0)
JavaScript警告向您显示对象的toString()结果,因为它无法显示字符串以外的任何内容。控制台能够为您提供对象的交互式表示。