[英]firebug console
以下是我的代码块。 因为我没有在IE中安装Firebug ,每次当我尝试在IE
测试我的代码时,我得到一个错误消息控制台是未定义的。 所以我决定并开发了这个代码块,这样console.log
只能在firefox中工作并避免IE中的错误消息。
function clog() {
if(window.console && window.console.firebug) {
var a =[];
for(var i=0;i<arguments.length;i++) {
a.push(arguments[i]);
}
console.log(a.join(' , '));
}
}
我的代码工作正常,我得到了我想要的结果,
但是当我尝试在jQuery上使用上面的代码时(例如clog($('body'));
),
我期望的结果是jQuery(body)
。 但我得到的结果是[object Object]
我怎样才能得到我期望的结果?
谢谢 !!
当你调用这样的选择器时,比如说$('body')
你正在做的是创建一个对象,一个jQuery对象...所以你的输出是正确的。
如果你想显示除.toString()
以外的东西,那么你应该调用该属性,例如:
$('body').selector //body
$('body').length //1
$('body').context //document
如果您正在使用的是console.log
,我发现如果它缺少(而不是在您想要使用它时进行检查),只需创建它就容易得多,只需在任何日志记录代码之前运行:
if (typeof console == "undefined") console = { log: function () { } };
然后, if
检查,您可以删除当前。
我总是写一个包装函数(以防止非'控制台'的浏览器出现问题)
function log(msg) {
try {
console.log(msg);
} catch(e){}
}
您可以检查“msg”对象,然后检查类型以确定它是否是“jQuery”对象,并提取数据。
console.log(a);
代替
console.log(a.join(' , '));
应该这样做。
Array.prototype.join
将所有数组的连接连接成一个String
。 这意味着
var b = [{}, "test"];
b.toString()
将评估为"[object Object],test"
无论该对象中有哪些methods
或members
。 你只是丢失了调用.toString()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.