代码之家  ›  专栏  ›  技术社区  ›  user372551

萤火虫控制台

  •  4
  • user372551  · 技术社区  · 15 年前

    下面是我的代码块。因为我还没有安装 在IE中,每次我尝试在 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]

    我怎样才能得到我所期望的结果?

    谢谢您!!

    3 回复  |  直到 15 年前
        1
  •  2
  •   jAndy    15 年前
    console.log(a);
    

    而不是

    console.log(a.join(' , '));
    

    Array.prototype.join 将所有数组入口连接到一个 String . 这意味着

    var b = [{}, "test"];
    b.toString()
    

    将评估为 "[object Object],test" 不管怎样 methods members 在那个物体里。你只是失去了打电话的信息 .toString() .

        2
  •  4
  •   Nick Craver    15 年前

    当你这样调用选择器时,说 $('body') 您所做的是创建一个对象,一个jQuery对象……这样您的输出就正确了。

    如果你想显示其他东西 .toString() ,则应调用该属性,例如:

    $('body').selector //body
    $('body').length   //1
    $('body').context  //document
    

    如果你用的是 console.log ,我发现在缺少时创建它(而不是在需要时检查它)要容易得多,只需在任何日志代码之前运行以下命令:

    if (typeof console == "undefined") console = { log: function () { } };
    

    if 检查。

        3
  •  3
  •   Derrick    15 年前

    function log(msg) {
        try {
          console.log(msg);
        } catch(e){}
    }
    

    您可以检查“msg”对象,然后检查类型以确定它是否是“jQuery”对象,并提取数据。