本帖最后由 kaizi_sun 于 2011-11-29 10:51:50 编辑

解决方案 »

  1.   

    你要遍历什么,就取obj下面的节点,比如obj.cattree.length
      

  2.   

    我的目的是把下面这样的json结构 用treeview形式 展示出来。 结构是无极限的。 
      

  3.   

    [{name:'Wooden',code:'C000001',level:'1',sub:[{name:'ABC',code:'C000004',level:'2',sub:[{name:'tets',code:'C000009',level:'3',sub:[{name:'wodioqwe',code:'C000010',level:'4',sub:[{name:'opi',code:'C000011',level:'5',sub:[]}]}]}]},{name:'DEF',code:'C000005',level:'2',sub:[]},{name:'Jiaju',code:'C000007',level:'2',sub:[]}]},{name:'OuterDoor',code:'C000002',level:'1',sub:[{name:'HGJ',code:'C000006',level:'2',sub:[{name:'fff',code:'C000012',level:'3',sub:[]}]}]},{name:'Furniture',code:'C000003',level:'1',sub:[]},{name:'Paper tool',code:'C000008',level:'1',sub:[]}]
      

  4.   

    那就在数据处理时把数据转化成list形式
      

  5.   


    用list形式是什么意思呢? 我再前台用函数把它拼接成树
      

  6.   

    0
    Object { Name="CladMeasurementInsert", DisPlayName="测试", CanBeQuery="False", 更多...}

    1
    Object { Name="CladMeasurementInsert", DisPlayName="测试", CanBeQuery="False", 更多...}

    2
    Object { Name="CladMeasurementInsert", DisPlayName="测试", CanBeQuery="False", 更多...}

    3
    Object { Name="CladMeasurementInsert", DisPlayName="测试", CanBeQuery="False", 更多...}

    4
    Object { Name="CladMeasurementInsert", DisPlayName="测试", CanBeQuery="False", 更多...}
      

  7.   


    对象深度遍历,盲编版,未经测试:
    function eachJsonObj(jsonObj, node){
      for (var k in jsonObj) {
        switch(typeof jsonObj[k]){
            case 'string':
            case 'number':
            case 'boolean':
                // 基础类型或没必要再遍历下去的。就直接以叶显示
                // 构造叶子节点。。
                var subNode = xxx;
                node.add(subNode);
                subNode = null;
                break;
            default : 
                if(jsonObj[k] == null){
                    // 构造叶子节点
                    var subNode = xxx;
                    node.add(subNode);
                    subNode = null;
                } else {
                    // 构造支节点
                    var node;
                    eachJsonObj(jsonObj[k], node);
                    node = null;
                }
                break;
        }
      }
    }
      

  8.   

    createCat:function(obj,o,parentI)
    你的方法不是只有三个参数么
    怎么递归的时候有变成四个参数了?
    sys.Category.createCat(obj[i].sub,oli,rdid,s);
      

  9.   


    ridi本来是 有个选中参数。