for循环 递归 如何保持 for中变量 本帖最后由 kaizi_sun 于 2011-11-29 10:51:50 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你要遍历什么,就取obj下面的节点,比如obj.cattree.length 我的目的是把下面这样的json结构 用treeview形式 展示出来。 结构是无极限的。 [{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:[]}] 那就在数据处理时把数据转化成list形式 用list形式是什么意思呢? 我再前台用函数把它拼接成树 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", 更多...} 对象深度遍历,盲编版,未经测试: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; } }} createCat:function(obj,o,parentI)你的方法不是只有三个参数么怎么递归的时候有变成四个参数了?sys.Category.createCat(obj[i].sub,oli,rdid,s); ridi本来是 有个选中参数。 这个怎么跳转到自定义页面 为什么我的代码不能导出excel? Ext Js ComboBox问题 高分 extjs的问题:把一个grid插入到form的FieldSet里 submit与href object.style.display问题请教 怎样将光标定位到textarea的某一行? 点击按钮使框架页另一个页面跳转? 提交表单是要做确认,该怎么样实现 页面上有两个表格,我只需要打印其中一个,怎么办? window.history.back(-1)显示网页已过期 文件上传,设置input file 的value,有什么好的解决方案?
用list形式是什么意思呢? 我再前台用函数把它拼接成树
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", 更多...}
对象深度遍历,盲编版,未经测试:
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;
}
}
}
你的方法不是只有三个参数么
怎么递归的时候有变成四个参数了?
sys.Category.createCat(obj[i].sub,oli,rdid,s);
ridi本来是 有个选中参数。