【发布时间】:2014-02-25 11:22:51
【问题描述】:
我尝试在 html 中附加一个国家/地区列表。我的 JSON 响应数据中有一个带有 id 的国家/地区名称。请看我的下图。
这里的 15 是国家 ID,巴西是国家名称。但我不知道如何在$.each 中迭代响应数组。
【问题讨论】:
-
响应是数组还是字符串?
标签: jquery ajax json jquery-ui
我尝试在 html 中附加一个国家/地区列表。我的 JSON 响应数据中有一个带有 id 的国家/地区名称。请看我的下图。
这里的 15 是国家 ID,巴西是国家名称。但我不知道如何在$.each 中迭代响应数组。
【问题讨论】:
标签: jquery ajax json jquery-ui
试试这个:
var arr = [["15","Brazil"],["14","Italy"],["13","Spain"],["15","Scotland"]];
$.each(arr, function(key,obj){
// obj contains array like : ["15","Brazil"]
$('body').append('<div>id:'+obj[0]+', country:' + obj[1]+'</div>');
})
【讨论】:
正如JQuery manual 中所述,您可以使用 .each 方法在 json 中进行迭代:
$.getJSON( "ajax/myfile.json", function( data ) {
var items = [];
$.each( data, function( key, val ) {
items.push( "<li id='" + val[0] + "'>" + val[1] + "</li>" );
});
$( "<ul/>", {
"class": "countries",
html: items.join( "" )
}).appendTo( "body" );
});
否则,如果你有一个字符串:
var jsonData = [["15","Brazil"],["14","Italy"]];
$.each(jsonData, function(key,val){
$('#divID').append('<div>id:'+ val[0] + ', country:' + val[1] + '</div>');
})
这里DEMO。
【讨论】: