пожарная консоль - PullRequest
4 голосов
/ 24 июля 2010

Ниже приведен мой блок кода. так как я не установил Firebug в IE, каждый раз, когда я пытаюсь проверить свой код в IE, я получаю сообщение об ошибке console не определено. поэтому я решил и разработал этот блок кода, чтобы 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 ]

4 голосов
/ 24 июля 2010

Когда вы вызываете такой селектор, скажите $('body'), что вы делаете, это создание объекта, объекта jQuery ... так что ваш вывод правильный.

Если вы хотите отобразить что-то другоечем .toString(), то вам следует вызвать это свойство, например:

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

Если все, что вы используете, это console.log, я просто создаю его, если оно отсутствует (в отличие отчтобы проверять всякий раз, когда вы хотите его использовать) гораздо проще, просто запустите этот код перед любым кодом регистрации:

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

Затем вы можете удалить текущий if чек.

3 голосов
/ 24 июля 2010

Я всегда пишу функцию-обертку (чтобы не возникали проблемы с не консольными)объект и извлекать данные.

2 голосов
/ 24 июля 2010
console.log(a);

вместо

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

должен это сделать.

Array.prototype.join объединит все записи массива в String. Это значит

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

будет иметь значение "[object Object],test" независимо от того, что methods или members находятся внутри этого объекта. Вы просто теряете эту информацию, звоня .toString().

...