提问人:Eli 提问时间:1/19/2009 最后编辑:CommunityEli 更新时间:8/30/2013 访问量:147574
jQuery:print_r()显示等效项?[复制]
jQuery: print_r() display equivalent? [duplicate]
问:
可能的重复:
JavaScript 数据格式/漂亮的打印机
我有点厌倦了在 FireBug 中查看未格式化的 json blob。
有谁知道 jQuery 的 PHP print_r() 等价物?
会递归地从对象或数组生成显示字符串的东西,我可以在页面上显示以进行快速调试?
谢谢!
答:
console.log
是我在调试时最常使用的。
不过,我能够找到这个jQuery扩展
。
评论
console.log(string, object);
您可以使用非常容易的反射来列出所有属性、方法和值。
对于基于 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?
你也可以做
console.log("a = %o, b = %o", a, b);
其中 A 和 B 是对象。
热门评论有一个指向 Firebug 的 console.log 文档的断开链接,所以这里是关于控制台的 wiki 文章的链接。我开始使用它,并且对它作为 PHP 的 print_r() 的替代品感到非常满意。
另外值得注意的是,Firebug 允许您访问返回的 JSON 对象,即使您无需手动记录它们:
- 在控制台中,您可以看到 AJAX 响应。
- 单击三角形以展开响应并查看详细信息。
- 单击详细信息中的“JSON”选项卡。
- 您将看到使用扩展三角形组织的响应数据。
此方法需要多次单击才能获取数据,但不需要在实际的 javascript 中添加任何内容,也不会将您在 Firebug 中的注意力从控制台中转移出去(使用 console.log 会创建一个指向 firebug 的 DOM 部分的链接,迫使您单击返回控制台)。
为了我的钱,我宁愿在想要检查时多点击几次,而不是弄乱日志,特别是因为通过不添加任何额外的粗碎来保持控制台整洁。
像这样的东西怎么样:
<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,' '); }
评论
我制作了一个jQuery插件,相当于
<pre>
<?php echo print_r($data) ?>
</pre>
您可以在 https://github.com/tomasvanrijsse/jQuery.dump 下载它
评论
看看这个:http://phpjs.org/functions/index 并找到print_r或使用 console.log() 和 firebug。
$.each(myobject, function(key, element) {
alert('key: ' + key + '\n' + 'value: ' + element);
});
这为我做了工作。:)
评论