jquery解析json异步功能树

1.html代码:

<div class="tree_menu">
 <ul id="treeRoot"></ul>
</div>

2.定义的json格式:json对象一般用双引号,并且文件编码方式为utf-8

[{

"id":"01",

"name":"中国",

"items":[{

"id":"0101",

"name":"北京市",

"items":[{

"id":"0101",

"name":"东城区"

}]

}]

},

{

"id":"02",

"name":"美国"

}]
3.javascript解析json数组

var baseUrl = window.location.host;
function createTreeNode(){
 $.getJSON("http://"+baseUrl+"/json/js/treeData.json",function(data){
  $("#treeRoot").empty();
  var htmlstr = '';
  $.each(data,function(itemsIndex,item){
   htmlstr += "<li id='"+item.id+"'><span class='hitarea'>"+item.name+"</span>";
   if(item.items && item.items.length > 0){
    htmlstr +="<ul id='ul"+item.id+"' title='"+itemsIndex+"'></ul>";
   }
   htmlstr +="</li>";
  });
  $("#treeRoot").append(htmlstr); 
  function loadData(treeRoot,json){
   var hitarea = treeRoot.find("li>span.hitarea");
   var titAttr = treeRoot.find("ul").attr("title");
   hitarea.each(function(i){
    hitarea.eq(i).one("click",function(){  //第一次点击时加载子项
     var itemUl = json[titAttr].items;
     var newUl = $(this).next("ul");
     var html = '';
     $.each(itemUl,function(indexItems,item){
      html += "<li id='"+item.id+"'><span class='hitarea'>"+item.name+"</span>";
      if(item.items && item.items.length > 0){
       html +="<ul id='ul"+item.id+"' title='"+indexItems+"'></ul>";
      }
      html +="</li>";
     });
     newUl.append(html);
     loadData(newUl,itemUl);  //递归调用loadData方法
    })
   })
  }
  loadData($("#treeRoot"),data);
 })
};
$(document).ready(function(){
 createTreeNode();
})



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值