treeData转listData

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-1.8.3.js"></script>
</head>
<body>
<div>
    <ul class="main"></ul>
</div>
<script>
var treeData={
    id:971,
    pid:-1,
    value:'中国',
    child:[
        {pid:971,id:191,value:'安徽',
            child:[{pid:191,id:292,value:'合肥',
                child:[{pid:292,id:393,value:'肥东',
                    child:[{pid:393,id:494,value:'龙泉路',
                        child:[{pid:494,id:595,value:'文一国际'},
                               {pid:595,id:57810,value:'天都城',child:[
                                    {pid:57810,id:533234595,value:'10栋5楼'}
                                ]}
                        ]
                    }]
                }]
            },[
                {pid:191,id:797,value:'黄山',child:[
                    {pid:797,id:999,value:'徽州区'}
                ]}
            ]
            ]},
        {pid:971,id:11,value:'四川',
            child:[{pid:11,id:22,value:'成都',
                child:[{pid:22,id:33,value:'双流',
                    child:[{pid:33,id:44,value:'华阳',
                        child:[{pid:44,id:55,value:'天府大道'}]
                }]
            }]
        },[
                {pid:11,id:77,value:'南充',child:[
                    {pid:77,id:99,value:'南部'}
                ]}
            ]
    ]}]

};

function setListLeft(treeData){
    var step =30;
    var cache =[];
    fn(treeData);
    function fn(data,n){
        n=n?n:0;
        var temp={};
        if(typeof(data)=='object'){
            if((data instanceof Array)){
                for(var i =0 ;i <data.length ;i++){
                    fn(data[i],n);
                }
            }else if((data instanceof Object)){
                for(var k in data){
                    if(!('left' in data)){
                        data['left']=n+=step;
                    }
                    if(('id' in data) && !('flag' in data)){
                        temp = $.extend(false,temp,data);
                        delete temp.child;
                        data['flag']=true;
                        cache.push(temp);
                    }
                    fn(data[k],n);
                }
            }
        }else{
            //console.log(data);
        }
    }
    return cache;
}

var liData =setListLeft(treeData);
var temp =$('<div></div>');
for(var k =0;k<liData.length;k++){
    temp.append($('<li></li>').css({paddingLeft:liData[k].left+'px'}).html(liData[k].value));
}
$('.main').append(temp.find('li'));


</script>
</body>
</html>

转载于:https://my.oschina.net/u/1861097/blog/675325

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值