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

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

Я немного устал от просмотра неформатированных BLOB-объектов в FireBug.

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

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

Спасибо!

8 ответов

Решение

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

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

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

Для браузеров на основе 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?

Как насчет чего-то вроде:

<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;'); }

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

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

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

Я сделал плагин JQuery для эквивалента

<pre>
<?php echo print_r($data) ?>
</pre>

Вы можете скачать его по адресу https://github.com/tomasvanrijsse/jQuery.dump

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

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

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

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

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

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

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

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

Другие вопросы по тегам