使用JSON和jquery创建嵌套列表
嗨下面是我的JSON,HTML和jquery代码示例:Json:
{ "node":[ {"name":"XXX", "child":[ {"name":"acb"}, {"name":"txy"} ] }, {"name":"ZZZ", "child":[{"name":"ism"}, {"name":"sss"} ] }, {"name":"PPP"}, {"name":"QQQ"} ] }
Jquery代码:
$(document).ready(function(){ var $ul=$('
'); $.getJSON('test1.json', function(json) { $.each(json.node, function(key,value){ getList(value, $ul); }) }); $ul.appendTo("body"); }); function getList(item, $list) { if (item) { if (item.name) { $list.append($('' + item.name + '' +" ")); } if (item.child && item.child.length) { var $sublist = $("
"); $.each(item.child, function (key, value) { getList(value, $sublist); }); $list.append($sublist); } } }
因此,当我运行此代码时,列表将返回为
.. and so on . But i don't want my list to be this was i need it like : -
-
请让我如何修改我的function,以这种方式实现嵌套列表!..提前谢谢。
尝试
function getList(item, $list) { if($.isArray(item)){ $.each(item, function (key, value) { getList(value, $list); }); return; } if (item) { var $li = $(''); if (item.name) { $li.append($('' + item.name + '')); } if (item.child && item.child.length) { var $sublist = $("
"); getList(item.child, $sublist) $li.append($sublist); } $list.append($li) } }
演示: 小提琴