我似乎无法获得以下代码来向屏幕输出任何内容。 JavaScript不是我的强项!
这是调用输出房间列表的本地文件的JavaScript代码
$.getJSON('roomupdate.php?level=1&div=1&callback=json',function(res){
console.log(res.rooms.name[0]);
});
在上面我只想看到控制台中第一个房间的名字。这是JSON输出(我可以确认脚本可以看到并加载)
json(
{
"rooms":
[
{ "name" : "Bedroom" },
{ "name" : "Living Room" },
{ "name" : "Lounge" },
{ "name" : "Kitchen" }
]
})
有人能建议我做错了吗?甚至要在控制台中查看?
最后,你可以遍历数组吗?
答案 0 :(得分:2)
您的JSON数据包含一个对象rooms
,该对象实际上包含一个数组[]
,因此要访问数组中的数据,您需要将索引放在rooms
上:
console.log(res.rooms[0].name);
答案 1 :(得分:1)
使用callback=?
而不是callback=json
,以便jQuery知道您正在使用JSONp,并可以为回调函数选择自己的名称。
$.getJSON('roomupdate.php?level=1&div=1&callback=?',function(res){
//alert('Your name is '+res.rooms);
console.log(res.rooms.name[0]);
});
有关详细信息,请参阅http://api.jquery.com/jQuery.getJSON/#jsonp。
编辑:
再看一下,您需要更改访问数据的方式。 res.rooms.name[0]
应该是res.rooms[0].name
,因为房间是一个列表,每个房间都有一个名称属性。
答案 2 :(得分:0)
这将遍历房间数组并记录每个房间的名称:
$.each( res.rooms, function( i, room ) {
console.log( room.name );
});
如果这不起作用,请在回调开始时添加此语句(现在您可以进行console.log()
调用):
debugger;
在打开开发人员工具的情况下加载/运行您的页面,它将在您拥有该语句的调试器中停止。现在,您可以详细查看所有变量,尝试表达式以查看它们的作用,单步执行代码等。