jQuery:print_r()显示等效?

时间:2009-01-19 05:51:43

标签: php jquery debugging

  

可能重复:
  JavaScript data formatting/pretty printer

我对在FireBug中查看未格式化的json blob感到有些厌倦。

有没有人知道jQuery的PHP的print_r()等同于什么?

可以递归地从对象或数组中生成显示字符串的东西,我可以在页面上显示以便快速调试吗?

谢谢!

8 个答案:

答案 0 :(得分:68)

console.log是我在调试时经常使用的。

我能够找到这个jQuery extension

答案 1 :(得分:44)

您可以非常轻松地使用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?

答案 2 :(得分:16)

如下:

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

答案 3 :(得分:9)

您也可以

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

其中a和b是对象。

答案 4 :(得分:6)

我已经制作了相当于

的jQuery插件
<pre>
<?php echo print_r($data) ?>
</pre>

您可以在https://github.com/tomasvanrijsse/jQuery.dump

下载

答案 5 :(得分:5)

热门评论指向Firebug的console.log文档的链接已损坏,因此这里是a link to the wiki article about Console。我开始使用它并且非常满意它作为PHP的print_r()的替代品。

另外值得注意的是,即使没有手动记录它们,Firebug也可以访问返回的JSON对象:

  • 在控制台中,您可以看到的网址 AJAX响应。
  • 单击三角形以展开响应并查看详细信息。
  • 单击详细信息中的JSON选项卡。
  • 您将看到使用扩展三角形组织的响应数据。

此方法需要更多点击才能获取数据,但不需要在实际的javascript中添加任何内容,也不会将您的焦点转移到Firebug中(使用console.log创建指向DOM的链接)萤火虫部分,迫使你点击回到控制台后)。

对于我的钱,当我想检查而不是弄乱日志时,我宁愿再点击几次,特别是因为不加任何额外的残留物来保持控制台的整洁。

答案 6 :(得分:5)

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

这对我有用。 :)

答案 7 :(得分:-1)

看看这个:http://phpjs.org/functions/index并查找print_r或使用带有firebug的console.log()。