簡體   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