jQuery:print_r() 显示等效? [复制]
Posted
技术标签:
【中文标题】jQuery:print_r() 显示等效? [复制]【英文标题】:jQuery: print_r() display equivalent? [duplicate] 【发布时间】:2010-10-02 04:21:42 【问题描述】:可能重复:javascript data formatting/pretty printer
我有点厌倦了在 FireBug 中查看未格式化的 json blob。
有谁知道 jQuery 的 php 的 print_r() 等价物吗?
可以从对象或数组递归地生成显示字符串,我可以在页面上显示以进行快速调试?
谢谢!
【问题讨论】:
【参考方案1】:console.log
是我调试时最常使用的。
不过我还是找到了这个jQuery extension
。
【讨论】:
这是完美的。我一直在使用 console.log,但没有意识到我可以将对象传递给它。杜尔... 确实是杜尔。直到现在我才真正弄清楚这一点,因为我总是在我的 console.log() 开头添加一个字符串,所以每次我只得到字符串表示 [Object object]。我尝试了 console.log(myObj),现在好多了。 另外,console.dir 最适合对象 :) @the0ther console.log 可以接受多个参数,所以如果你想在开头添加一个字符串,请使用console.log(string, object);
(注意逗号)。这样你得到你的字符串并且对象也正确显示。
jQuery 扩展的链接已损坏。【参考方案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,' ');
【讨论】:
如果有人讨厌console.log,这是一个很好的回复:)【参考方案4】:你也可以这样做
console.log("a = %o, b = %o", a, b);
其中 a 和 b 是对象。
【讨论】:
【参考方案5】:$.each(myobject, function(key, element)
alert('key: ' + key + '\n' + 'value: ' + element);
);
这对我有用。 :)
【讨论】:
这不适用于多维对象。 嗯,这可能是真的,但你为什么不使用 console.log 来处理复杂的数组/对象呢? 如果你仍然想这样做(假设你真的需要它来编码,而不是调试),你可能需要嵌套的 foreach 语句,这在某些时候真的很复杂:P 因为有时候需要在页面上输出结果。我创建了一个函数,它输出数组并在检测到子值是另一个数组时调用自身。【参考方案6】:我已经制作了一个相当于
的jQuery插件<pre>
<?php echo print_r($data) ?>
</pre>
您可以在https://github.com/tomasvanrijsse/jQuery.dump下载它
【讨论】:
我修改了您的代码:您的代码输出需要附加到一个 div。但是有了这个功能,我可以在控制台上同时显示字符串和对象。 function print(variable) if(typeof variable == 'object') $.each(variable, function(key, element) console.log('' + key + ' => ' + element+""); ); else console.log('' + 变量 +""); 你能在github.com/tomasvanrijsse/jQuery.dump上发送拉取请求吗 我发送了拉取请求。 :-)【参考方案7】:顶部评论中指向 Firebug 的 console.log 文档的链接已损坏,因此这里是 a link to the wiki article about Console。我开始使用它并且对它作为 PHP 的 print_r() 的替代品非常满意。
另外值得注意的是,Firebug 允许您访问返回的 JSON 对象,即使您无需手动记录它们:
在控制台中你可以看到 AJAX 响应。 单击三角形展开响应并查看详细信息。 单击详细信息中的 JSON 选项卡。 您将看到以扩展三角形组织的响应数据。此方法需要多点击几次才能获取数据,但不需要在您的实际 javascript 中添加任何内容,并且不会将您在 Firebug 中的焦点转移到控制台之外(使用 console.log 创建到 DOM 的链接部分萤火虫,迫使您点击后返回控制台)。
为了我的钱,当我想检查而不是乱搞日志时,我宁愿多点击几次,尤其是因为通过不添加任何额外的杂物来保持控制台整洁。
【讨论】:
【参考方案8】:看看这个:http://phpjs.org/functions/index 并找到 print_r 或使用带有 firebug 的 console.log()。
【讨论】:
以上是关于jQuery:print_r() 显示等效? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在 javascript/jquery 中使用 PHP print_r 数组
json 没有价值,但 print_r 有价值 php pdo jquery ajax