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


如果有人可以建议,将不胜感激。

最佳答案

看看最后一个for循环:

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


=> console.log和append之间的索引元素不同

关于javascript - 使用JSON和jquery创建动态列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26155478/

10-11 23:34