JQuery: print_r() эквивалент отображения?

Возможный дубликат:
форматирование данных JavaScript/красивый принтер

Мне немного надоело смотреть на unformatted json blobs в FireBug.

Кто-нибудь знает эквивалент PHP print_r() для jQuery?

Что-то, что рекурсивно создало бы строку отображения из объекта или массива, которую я мог бы отобразить на странице для быстрой отладки?

Спасибо!

Ответ 1

console.log - это то, что я чаще всего использую при отладке.

Я смог найти этот jQuery extension, хотя.

Ответ 2

Вы можете очень легко использовать reflection, чтобы отобразить все свойства, методы и значения.

Для браузеров, основанных на Gecko, вы можете использовать метод .toSource():

var data = new Object();
data["firstname"] = "John";
data["lastname"] = "Smith";
data["age"] = 21;

alert(data.toSource()); //Will return "({firstname:"John", lastname:"Smith", age:21})"

Но так как вы используете Firebug, почему бы просто не использовать console.log?

Ответ 3

Как насчет чего-то типа:

<script src='http://code.jquery.com/jquery-latest.js'></script>

function print_r(o){
return JSON.stringify(o,null,'\t').replace(/\n/g,'<br>').replace(/\t/g,'&nbsp;&nbsp;&nbsp;'); }

Ответ 4

Вы также можете сделать

console.log("a = %o, b = %o", a, b);

где a и b - объекты.

Ответ 6

$.each(myobject, function(key, element) {
    alert('key: ' + key + '\n' + 'value: ' + element);
});

Это работает для меня.:)

Ответ 7

В верхнем комментарии есть некорректная ссылка на документацию console.log для Firebug, поэтому ссылка на статью wiki о консоли. Я начал использовать его и вполне удовлетворен этим как альтернатива PHP print_r().

Также следует отметить, что Firebug предоставляет вам доступ к возвращенным объектам JSON, даже без ручного ведения журнала:

  • В консоли вы можете увидеть URL-адрес ответ AJAX.
  • Нажмите треугольник, чтобы развернуть ответ и посмотреть подробности.
  • Перейдите на вкладку JSON в деталях.
  • Вы увидите данные ответа, организованные с помощью треугольников расширения.

Этот метод использует еще несколько кликов для получения данных, но не требует каких-либо добавлений в вашем фактическом javascript и не переносит фокус в Firebug из консоли (с помощью console.log создается ссылка на DOM раздел firebug, заставляя вас снова нажать на консоль).

За свои деньги я бы предпочел бы нажимать еще пару раз, когда я хочу проверять, а не путаться с журналом, тем более, что держит консоль аккуратно, не добавляя никаких дополнительных трещин.

Ответ 8

Посмотрите на это: http://phpjs.org/functions/index и найдите для print_r или используйте console.log() с firebug.