[英]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.