0
JSON文件創建使用JSON和jQuery的動態列表
{
"subject": "title",
"level": [
{
"title":"Test1",
"sub":[{
"title":"Test1 sub_1",
"links":[{
"title":"Test1sub1.1link_title",
"address":"linkAddress"
},{
"title":"Test1sub1.2_link_title",
"address":"linkAddress"
}
]
},{
"title":"Test2 sub_2",
"links":[{
"title":"Test2sub2.1_link_title",
"address":"linkAddress"
},{
"title":"Test2sub2.2_link_title",
"address":"linkAddress"
}
]
}]
},
{
"title":"Test3",
"sub":[{
"title":"Test3 sub_1",
"links":[{
"title":"Test31.1_link_title",
"address":"linkAddress"
},{
"title":"Test31.2_link_title",
"address":"linkAddress"
}
]
}]
}
]
}
在我的標記,我有以下
var json = $.getJSON('datar.json',function(data){
for(var i =0; i< data.level.length; i++){
console.log(data.level[i].title);
$('#accordion').append("<li>"+data.level[i].title+"</li>");
for (var k = 0; k<data.level[i].sub.length; k++){
console.log(data.level[i].sub[k].title);
$('#accordion').append("<li>"+data.level[i].sub[k].title+"</li>");
for (var j = 0; j<data.level[i].sub[k].links.length; j++){
console.log(data.level[i].sub[k].links[j].title);
$('#accordion').append("<li>"+data.level[0].sub[j].links[i].title+"</li>");
}
}
}
正如我們看到的,我通過循環和追加到創建動態名單。 Fom我的console.log輸出我收到我需要的正確格式。
Test1
Test1 sub_1
Test1sub1.1link_title
Test1sub1.2_link_title
Test2 sub_2
Test2sub2.1_link_title
Test2sub2.2_link_title
Test3
Test3 sub_1
Test31.1_link_title
Test31.2_link_title
但是頁面本身的顯示不正確的,
Test1
Test1 sub_1
Test1sub1.1link_title
Test2sub2.1_link_title
Test2 sub_2
Test1sub1.1link_title
Test2sub2.1_link_title
Test3
Test3 sub_1
Test1sub1.2_link_title
Test2sub2.2_link_title
如果有人可以提供建議,將不勝感激。
在您的標記的最後追加之間的相同指數的元素,你說的水平[ 0],它告訴它查看test1的json對象的第一個元素。我認爲你想要做的是級別[i] – 2014-10-02 06:38:54
你搞砸了索引。用'$('#accordion')替換'$('#accordion')。append(「
這就是爲什麼我更喜歡[Array.forEach()](https://developer.mozilla .ORG/EN-US /文檔/網絡/的JavaScript /參考/ Global_Objects /陣列/的forEach)。索引錯誤太容易了。 – dusky 2014-10-02 07:23:55