使用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) } }

      演示: 小提琴