jQuery:print_r()显示等效?

Eli*_*Eli 64 php debugging jquery

可能重复:
JavaScript数据格式化/漂亮的打印机

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

有没有人知道jQuery的PHP的print_r()相当于?

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

谢谢!

Pao*_*ino 69

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

我能够找到这个jQuery extension.

  • @ the0ther console.log可以带多个参数,所以如果你想在开头添加一个字符串,请使用`console.log(string,object);`(注意逗号).通过这种方式,您可以获得字符串并正确显示对象. (7认同)
  • 太棒了.我一直在使用console.log,但没有意识到我可以传递一个对象.杜尔... (6认同)
  • 杜尔确实.直到现在我才真正意识到这一点,因为我总是在我的console.log()的开头添加一个字符串,所以每次我得到字符串表示[Object object].我试过console.log(myObj),现在好多了. (5认同)
  • 另外,console.dir最适合对象:) (2认同)
  • jQuery扩展的链接已断开. (2认同)

CMS*_*CMS 44

您可以使用非常容易的反射来列出所有属性,方法和值.

对于基于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})"
Run Code Online (Sandbox Code Playgroud)

但是既然你使用Firebug,为什么不使用console.log呢?


小智 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;'); }
Run Code Online (Sandbox Code Playgroud)


Bil*_*ler 9

你也可以

console.log("a = %o, b = %o", a, b);
Run Code Online (Sandbox Code Playgroud)

其中a和b是对象.


Tom*_*mas 6

我已经制作了一个相当于的jQuery插件

<pre>
<?php echo print_r($data) ?>
</pre>
Run Code Online (Sandbox Code Playgroud)

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


jer*_*rke 5

热门评论与Firebug的console.log文档有一个断开的链接,所以这里有一个关于控制台的wiki文章的链接.我开始使用它并且非常满意它作为PHP的print_r()的替代品.

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

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

这种方法需要更多点击才能获得数据,但不需要在实际的javascript中添加任何内容,也不会将你的焦点从Firebug中移出控制台(使用console.log创建一个指向firebug的DOM部分的链接) ,强迫你点击回到控制台后).

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


Gog*_*gol 5

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

这对我有用.:)