上面是数据库的数据. 一个 area_id, 一个area_parentid把数据查出来得到json数据数组如下:  
json如下:[{"area_id":1,"area_name":"a","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":2,"area_name":"b","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":3,"area_name":"c","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":4,"area_name":"a1","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":5,"area_name":"a2","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":6,"area_name":"a3","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":7,"area_name":"a31","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":8,"area_name":"a32","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":9,"area_name":"a33","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":10,"area_name":"b1","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":11,"area_name":"b2","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":12,"area_name":"b3","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":13,"area_name":"c1","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":14,"area_name":"c2","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":15,"area_name":"c3","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null}]
area_id, 一个area_parentid,
我像父区域下有子区域:
如:
 
<ul id="red" class="treeview-red">
<li><span>Item 1</span>
<ul>
<li><span>Item 1.0</span>
<ul>
<li><span>Item 1.0.0</span></li>
</ul>
</li>
<li><span>Item 1.1</span></li>
<li><span>Item 1.2</span>
<ul>
<li><span>Item 1.2.0</span>
<ul>
<li><span>Item 1.2.0.0</span></li>
<li><span>Item 1.2.0.1</span></li>
<li><span>Item 1.2.0.2</span></li>
</ul>
</li>
<li><span>Item 1.2.1</span>
<ul>
<li><span>Item 1.2.1.0</span></li>
</ul>
</li>
<li><span>Item 1.2.2</span>
<ul>
<li><span>Item 1.2.2.0</span></li>
<li><span>Item 1.2.2.1</span></li>
<li><span>Item 1.2.2.2</span></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li><span>Item 2</span>
<ul>
<li><span>Item 2.0</span>
<ul>
<li><span>Item 2.0.0</span>
<ul>
<li><span>Item 2.0.0.0</span></li>
<li><span>Item 2.0.0.1</span></li>
</ul>
</li>
</ul>
</li>
<li><span>Item 2.1</span>
<ul>
<li><span>Item 2.1.0</span>
<ul>
<li><span>Item 2.1.0.0</span></li>
</ul>
</li>
<li><span>Item 2.1.1</span>
<ul>
<li><span>Item 2.1.1.0</span></li>
<li><span>Item 2.1.1.1</span></li>
<li><span>Item 2.1.1.2</span></li>
</ul>
</li>
<li><span>Item 2.1.2</span>
<ul>
<li><span>Item 2.1.2.0</span></li>
<li><span>Item 2.1.2.1</span></li>
<li><span>Item 2.1.2.2</span></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="open"><span>Item 3</span>
<ul>
<li class="open"><span>Item 3.0</span>
<ul>
<li><span>Item 3.0.0</span></li>
<li><span>Item 3.0.1</span>
<ul>
<li><span>Item 3.0.1.0</span></li>
<li><span>Item 3.0.1.1</span></li>
</ul>

</li>
<li><span>Item 3.0.2</span>
<ul>
<li><span>Item 3.0.2.0</span></li>
<li><span>Item 3.0.2.1</span></li>
<li><span>Item 3.0.2.2</span></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>

解决方案 »

  1.   


    你的QQ是多少. 我加你 .   帮个忙就是这个意思:
    这样的js数组
    id,    parent _id,  name
    1          0                   a
    2          0                   b
    3           1                   a1
    4           1                   a2
    5            2                  b1
    6           2                    b2
    <ul>
    <li>a</li>
    <ul>
    <li>a1</li>
                            <li>a2</li>
    </ul>
    </li>
    <li>b</li>
    <ul>
    <li>b1</li>
                            <li>b2</li>
    </ul>
    </li>
    </ul>想要通过上面的js数组来组合成下面的html.用递归怎么实现,  js来操作
      

  2.   

    可以考虑返回这样的json数据
    [{area_parentid:"1",area:[{area_id:"4",area_name:"a1"},{area_id:"5",area_name:"a2"}]}]
      

  3.   

    先把父类的东西取出来放到一个数组里。
    然后把不是父类的东西放到另一个数组里。
    然后写个方法返回一个父类下的所有子类的数据。(这里可以直接返回成HMTL格式的东西)
    然后循环所有父类数组。再调用你写的递归函数。
    把得到的结果用字符串一个一个接起来。
    然后把这个字符串放到一个ul里 
      

  4.   

    var c="<ul>";  //接受生成子类的html
    //获得你要的子类html
    function a(b,fid)//子类的数组  父类ID
    {
        //for (var i=0;i<b.length;i++){
        //判断b[i].infexof(fid)!=-1  
        c = c+ "<li>子类中你需要的值</li>";
        }
        c=c+"</ul>";
        return c;
    }
    var d="";
    function b()
    {
              //循环你的父类数组
                //生成你要的父类html  如:d=“<ul><li>a</li>";
               //调用上面的函数取得子类的html。 b+=a(子类数组,父类ID);
               }
      

  5.   

    父类数组和子类数组要你到json里面取得。
      

  6.   

    就是这个数组 
    id, parent _id, name
    1 0 a
    2 0 b
    3 1 a1
    4 1 a2
    5 2 b1
    6 2 b2你具体写下啊
      

  7.   

    假如你返回是json 是  daa=[{"area_id":1,"area_name":"a","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null},{"area_id":2,"area_name":"b","area_parentid":0,"area_sort":0,"area_level":0,"area_createdate":"\/Date(-62135596800000)\/","area_re":null}]
    var a=new Array();
    var b=new Array();
    for(int i=0;i<daa.length;i++)
    {
       if(daa[i].area_parentid == 0)   //==0 是给父类的数组赋值    ===1 给子类数组赋值
       {
             a[i] =daa[i].area_id + daa[i].area_name+```````后面是全部json里的
       }else
       {
             a[i] =daa[i].area_id + daa[i].area_name+```````后面是全部json里的
       }
    }