+ -
当前位置:首页 → 问答吧 → for循环 递归 如何保持 for中变量

for循环 递归 如何保持 for中变量

时间:2011-11-29

来源:互联网

JScript code
//创建 目录 树 obj是目录集合对象,o是容器对象, parentI 父循环变量值。
 createCat:function(obj,o,parentI){                                
      for(i=0;i<obj.length;i++){
        var id=obj[i].code;
        var subid="sub_"+id;
        var ul= document.createElement("ul");
        var li=document.createElement("li");
        li.className="comli";
        var img=document.createElement("img");
        img.className="img";
        var rd=document.createElement("input");
        var span=document.createElement("span");
        span.innerHTML=obj[i].name;
        rd.type="radio";rd.id=id;rd.className="rd";rd.name="rd";
        if(id==rdid){rd.checked=true;sys.Category.parentid=rdid;span.style.color="red";}
        rd.onclick=(function(id,span){return function(){var spanarr=$t($("catDiv"),"span");
                                    if(spanarr)for(k=0;k<spanarr.length;k++)spanarr[k].style.color="black";
                                    sys.Category.parentid=id;span.style.color="red"; }})(id,span);
      li.appendChild(img);  li.appendChild(rd);li.appendChild(span);ul.appendChild(li);
      if(obj[i].sub.length!=0){
        var oli=document.createElement("li");
        oli.id=subid;
        oli.className="subli";
        if(i==obj.length-1||obj[i].level=="1")oli.className="subli1";
        var s= i;
        sys.Category.createCat(obj[i].sub,oli,rdid,s);
        alert(parentI);
        i=parentI;
        ul.appendChild(oli);
       } 
       o.appendChild(ul);
      }
   }

数据结构{success:true,catid:'C000013',cattree:[{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:[]}],catname:'',catabb:'',catdesc:'',catparent:''}
我在函数里传入父 循环变量。但是好像不对,请大家给我点提示

作者: kaizi_sun   发布时间: 2011-11-29

老乱。。。

作者: diky87688973   发布时间: 2011-11-29

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

作者: qiujialongjjj   发布时间: 2011-11-29

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

作者: kaizi_sun   发布时间: 2011-11-29

[{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:[]}]

作者: kaizi_sun   发布时间: 2011-11-29

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

作者: qiujialongjjj   发布时间: 2011-11-29

引用 5 楼 qiujialongjjj 的回复:
那就在数据处理时把数据转化成list形式


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

作者: kaizi_sun   发布时间: 2011-11-29

JScript code
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", 更多...}

作者: qiujialongjjj   发布时间: 2011-11-29

引用 3 楼 kaizi_sun 的回复:

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


对象深度遍历,盲编版,未经测试:
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;
  }
  }
}

作者: diky87688973   发布时间: 2011-11-29

相关阅读 更多

热门下载

更多