jquery解析json异步功能树

5 篇文章 0 订阅

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();  
    })  




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值