使用JSON和jquery创建动态列表

时间:2014-10-02 06:30:47

标签: javascript jquery json

JSON文件

{
"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>");

    }
   }
  } 

正如我们所看到的,我正在循环并追加创建动态列表。我的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

如果有人可以提出建议,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

看看最后一个for循环:

console.log(data.level[**i**].sub[**k**].links[**j**].title);
$('#accordion')
   .append("<li>"+data.level[**0**].sub[**j**].links[**i**].title+"</li>");

=&GT;它与console.log和append

之间的索引元素不同