2
$(function() {
var data;
$.getJSON("menu.json", function(data){
//console.log(data);
//console.log(data.menu);
//console.log(data.menu.length);
//console.log(data.menu[1].link);
//getMenuItem(data);
var $menu = $("#menu");
console.log($menu);
console.log(this);
console.log(data)
$.each(data.menu, function() {
$menu.append(getMenuItem(data));
//console.log(this);
});
// //$menu.menu();
//getMenuItem(data);
});
function getMenuItem(data) {
var i = 0;
while(i<data.menu.length){
var item = $("<li>").append($("<a>",
{
href: '#' + data.menu[i].link,
html: data.menu[i].name
}));
//console.log(data.menu[i]);
if (data.sub) {
var subList = $("<ul>");
$.each(data.sub, function() {
subList.append(getMenuItem(this));
// //console.log(this);
// //console.log(subList);
});
item.append(subList);
// //console.log
}
i+=1;
console.log(i);
return item;
}
}
/*optional stuff to do after success */
// console.log(data);
// console.log(jsonD);
// for(i=0;i<data.menu.length;i++){
// console.log(data.menu[i].sub);
// }
});
這是我的js(jquery)文件。我試圖從本地的json文件中獲取數據。這是一個多級列表。當我運行代碼時,它不會獲取整個json數據,只會獲取列表中的第一項。誰能幫忙?代碼不循環通過整個JSON數據
而且,這裏是我的JSON文件
{
"menu" : [{
"name": "Croatia",
"link": "0",
"sub": null
}, {
"name": "England",
"link": "1",
"sub": [{
"name": "Arsenal",
"link": "0-0",
"sub": null
}, {
"name": "Liverpool",
"link": "0-1",
"sub": null
}, {
"name": "Manchester United",
"link": "0-2",
"sub": null
}]
}, {
"name": "Spain",
"link": "2",
"sub": [{
"name": "Barcelona",
"link": "2-0",
"sub": null
}, {
"name": "Real Madrid",
"link": "2-1",
"sub": null
}]
}, {
"name": "Germany",
"link": "3",
"sub": [{
"name": "Bayern Munich",
"link": "3-1",
"sub": null
}, {
"name": "Borrusia Dortmund",
"link": "3-2",
"sub": null
}]
}]
}
PS #menu是UL,也回答了jQuery,請
感謝@charlietfl,也可以請你告訴我,你用什麼邏輯?非常感激 –