提问人:Eli 提问时间:9/2/2009 更新时间:9/2/2009 访问量:201
jQuery/Javascript 从对象中提取信息
jQuery/Javascript pulling info from an object
问:
我正在尝试使用以下代码从Ajax调用返回的一些json中创建客户端名称列表。
数据如下:
{“status”:1,“data”:{“clients”:[{“ClientID”:“1”,“AccountID”:“1”,“ClientName”:“访问贷款缓解”,“Active”:“1”},{“ClientID”:“2”,“AccountID”:“1”,“ClientName”:“Big Time Business”,“Active”:“1”},{“ClientID”:“3”,“AccountID”:“1”,“ClientName”:“Bill Releford”,“Active”:“1”},{“ClientID”:“4”,“AccountID”:“1”,“ClientName”:“Bonnie Silverman”,“Active”:“1”},{“ClientID”:“5”,“AccountID”:“1”,“ClientName”:“Dear Holdings”,“Active”:“1”},{“ClientID”:“6”,“AccountID”:“1”,”ClientName“:”平静牙科“,”Active“:”1“},{”ClientID“:”7“,”AccountID“:”1“,”ClientName“:”Eva Field“,”Active“:”1“},{”ClientID“:”8“,”AccountID“:”1“,”ClientName“:”First Independent Pictures“,”Active“:”1“},{”ClientID“:”9“,”AccountID“:”1“,”ClientName“:”Gallery 825“,”Active“:”1“},{”ClientID“:”10“,”AccountID“:”1“,”ClientName“:”Greenway Arts Alliance“,”Active“:”1“},{”ClientID“:”11“,”AccountID“:”1“,”ClientName“:”International Strategy Group“,”Active“:”1“},{”ClientID”:“12”,“AccountID”:“1”,“ClientName”:“Ramtin”,“Active”:“1”},{“ClientID”:“13”,“AccountID”:“1”,“ClientName”:“Spabro”,“Active”:“1”},{“ClientID”:“14”,“AccountID”:“1”,“ClientName”:“LMGA”,“Active”:“1”},{“ClientID”:“15”,“AccountID”:“1”,“ClientName”:“Main Street Business Association”,“Active”:“1”},{“ClientID”:“16”,“AccountID”:“1”,“ClientName”:“Rabbit Animation”,“Active”:“1”},{“ClientID”:“17”,“AccountID”:“1”,“ClientName”:“Rooms & Gardens”,“Active”:“1”},{”ClientID“:”18“,”AccountID“:”1“,”ClientName“:”夏日“,”Active“:”1“},{”ClientID“:”19“,”AccountID“:”1“,”ClientName“:”Sue Shellock“,”Active“:”1“},{”ClientID“:”20“,”AccountID“:”1“,”ClientName“:”Susan Gates“,”Active“:”1“},{”ClientID“:”21“,”AccountID“:”1“,”ClientName“:”The Park Entertainment“,”Active“:”1“},{”ClientID“:”22“,”AccountID“:”1“,”ClientName“:”统一调度“,”Active“:”1“},{”ClientID“:”23“,”AccountID“:”1“,”ClientName“:”Westside Media Group“,”Active“:”1“},{”ClientID“:”24“,”AccountID“:”1“,”ClientName“:”YHD“,”Active“:”1“},{”ClientID“:”25“,”AccountID“:”1“,”ClientName“:”Discoverfire, Inc.“,”Active“:”1“}]}}
代码是这样的:
for (var Client in o.data.clients) {
$('#list_container').append("<div>"+Client.ClientName+"</div>");
}
不太有效,我尝试了几种不同的方法来访问 ClientName 属性。Javascript 不是我最强的语言,从对象中获取数据只会杀死我 - 习惯于 PHP 对象和数组。
我确定这很简单 - 有人可以显示正确的语法吗?
谢谢!
答:
Clients 是一个数组,因此最好在其上使用 jQuery 的每个数组:
$.each( o.data,clients, function(idx, client) {
// use client.ClientName here
});
评论
这并不完全是循环的工作方式。解决此问题的更简单、更准确、更可靠的方法是使用传统语法,如下所示:for
for
for (var i = 0; i < o.data.clients.length; i++) {
var client = o.data.clients[i];
$('#list_container').append("<div>"+client.ClientName+"</div>");
}
你使用的语法将起作用,但它仍然迭代索引(而不是值),即使这样,它也不仅限于数组中的整数索引——它还可能包括在数组原型上定义的其他属性,甚至在特定的数组对象上。对于像这样的传统数组来说,使用无聊的语法进行迭代是一个更好的选择。for
i = 0
上一个:PHP大型报告文件下载问题
评论