显示对象内容 - JS / jQuery

12

$(this).data("events");返回[object Object]时,我需要查看其中的实际情况。我找到了以下内容:

var Finder = "";
$.each($(this).data("events"), function(i, n){
    Finder += "Name: " + i + ", Value: " + n + " | ";
});

然而,n 仍然返回 [object Object]

编辑:(输出)--

Name: click, Value: [object Object] | 

有没有一种有效的方法可以展示该元素内的所有内容,就像PHP中的print_r那样?

4个回答

19

console.log($(this).data("events")) 在Chrome(或其他浏览器)中可以让你深入了解该对象。

在 Chrome 中,使用 Ctrl+Shift+J 可以打开控制台。


16

您可以使用.toSource()将 JavaScript 对象转换为字符串表示形式,以便您可以在没有像 Firebug 或 Chrome Dev Tools 中那样的漂亮错误控制台的情况下查看它:

alert($(this).data("events").toSource());

1
我看到你之前在那里用了toString()...实际上,这是一个更好的解决方案,因为它可以在大多数浏览器中工作,而toSource()在IE中无法运行。 - leo.vingi
我差点删除了我的答案,因为我无法解释toString()toSource()之间的区别。如果有人知道,很好听到他们的意见。 - Jasper
1
据我所知,toSource() 将把 object 转换成 JSON 格式。W3C:“toSource() 方法表示对象的源代码。”(http://www.w3schools.com/jsref/jsref_toSource_date.asp)似乎 JSON 输出才是关键。 - Matt

5

如果你无法使用console.log,那么alert( $(this).data("events").toSource() )也可以使用。


3

打印对象内容的方法是使用

console.log(obj_str);

您可以在控制台中看到以下结果。
Object {description: "test"} 

在Chrome浏览器中按F12打开控制台,您会在调试模式下找到控制台选项卡。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接