js 树形菜单递归

<script>//数据结构  
    var json = [  
    { id: 1, pid: 0, text: '1(XX公司)' },  
    { id: 2, pid: 4, text: '2.1.1(开发部a-1组)' },  
    { id: 3, pid: 0, text: '2(开发部)' },  
    { id: 4, pid: 3, text: '2.1(开发部a)' },  
    { id: 5, pid: 0, text: '3(人事部)' },  
    { id: 6, pid: 5, text: '3.1(人事部A)' },  
    { id: 7, pid: 0, text: '4(设计部)' },  
    { id: 8, pid: 7, text: '4.1(设计部A)' },  
    { id: 9, pid: 4, text: '2.1.2(开发部a-2组)' },  
    { id: 11, pid: 2, text: '2.1.1.1(开发部a-1组>1小组)' },  
    { id: 12, pid: 2, text: '2.1.1.2(开发部a-1组>2小组)' },  
    { id: 13, pid: 5, text: '3.2(人事部A)' },  
    { id: 19, pid: 5, text: '3.3(人事部B)' }  
    ];  
    function departmentRecursion(mid, obj) {  
        var a = '<dl>'; 
        //console.log(obj.length); 
        //for (var i = 0, j=0;i<=obj.length;) 
        //{
           // console.log(i,j);
           // if (j.pid == mid)  
               // a += '<dt>' + j.text + '</dt><dd>' + departmentRecursion(j.id, obj) + '</dd>'; 
                // a += '<dt>' + j.text + '</dt><dd>' + departmentRecursion(j.id, obj) + '</dd>'; j = obj[i++]; 
       // }
        for(var i=0;i<obj.length;i++)
       {
        //console.log(obj[i].pid)
        if(obj[i].pid==mid)
         a += '<dt>' + obj[i].text + '</dt><dd>' + departmentRecursion(obj[i].id, obj) + '</dd>'; 
       }
        
        a += '</dl>';  
        return a;  
    }  
    document.write(departmentRecursion(0, json));  
</script>  

猜你喜欢

转载自blog.csdn.net/qmdweb/article/details/80734363
今日推荐