繁体   English   中英

萤火虫控制台

[英]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"无论该对象中有哪些methodsmembers 你只是丢失了调用.toString()

暂无
暂无

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

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