首页 > 网站 > WEB开发 > 正文

作用域问题引发的血案

2024-04-27 14:08:31
字体:
来源:转载
供稿:网友

作用域问题引发的血案

最近做项目过程中需要根据JSON数据生成一个树状的目录,结果代码如下:

varfolderList=[{"FolderName":"ASD","ChildList":null},{"FolderName":"内网公告","ChildList":null},{"FolderName":"测试文档","ChildList":null},{"FolderName":"软件开发","ChildList":null},{"FolderName":"Test","ChildList":[{"FolderName":"Test2","ChildList":[{"FolderName":"Test3","ChildList":null}]}]},{"FolderName":"个人","ChildList":null},{"FolderName":"公司通知","ChildList":null},{"FolderName":"采购平台","ChildList":null}];varstr='';functiongenerateFolders(arr){if(arr.length>0){str+='<divclass="sui-listsui-list-iconubtbc-gra1">';for(vari=0,len=arr.length;i<len;i++){str+='<ulclass="ubub-ac">' +'<liclass="sui-list-liconsui-icon-ok-circlefts2">'+'</li>' +'<ulclass="ubub-f1sui-list-item">' +'<liclass="ub-f1sui-list-textsui-list-nowrap">'+arr[i].FolderName+'</li>' +'<liclass="sui-list-riconub-imgsui-icon-chevron-rightfts2"></li>' +'</ul>'+'</ul>';if(isDefine(arr[i].ChildList)){str+=generateFolders(arr[i].ChildList);}}str+='</div>';returnstr;}else{return'';}}varfolderTxt='<divclass="sui-listsui-list-iconubtbc-gra1">'+'<ulclass="ubub-ac">'+'<liclass="sui-list-liconsui-icon-drawerfts2">'+'</li>'+'<ulclass="ubub-f1sui-list-item">'+'<liclass="ub-f1sui-list-textsui-list-nowrap">我的目录</li>'+'<liclass="sui-list-riconub-imgsui-icon-chevron-rightfts2"></li>'+'</ul>'+'</ul>';folderTxt+=generateFolders(folderList);folderTxt+='</div>';$('#list').html(folderTxt);/*** 判断是否是空* @param value*/function isDefine(value){ if(value == null || value == "" || value == "undefined" || value == undefined || value == "null" || value == "(null)" || value == 'NULL' || typeof(value) == 'undefined'){ return false; } else{value = value+""; value = value.replace(//s/g,""); if(value == ""){ return false; } return true; }}

结果出来的树如下图:

经排查,发现是由于str定义的位置不对引起的,将str定义为局部变量就可以了。

functiongenerateFolders(arr){varstr='';if(arr.length>0){str+='<divclass="sui-listsui-list-iconubtbc-gra1">';for(vari=0,len=arr.length;i<len;i++){str+='<ulclass="ubub-ac">'+'<liclass="sui-list-liconsui-icon-ok-circlefts2"></li>'+'<ulclass="ubub-f1sui-list-item">'+'<liclass="ub-f1sui-list-textsui-list-nowrap">'+arr[i].FolderName+'</li>'+'<liclass="sui-list-riconub-imgsui-icon-chevron-rightfts2"></li>'+'</ul>'+'</ul>';if(isDefine(arr[i].ChildList)){str+=generateFolders(arr[i].ChildList);}}str+='</div>';returnstr;}else{return'';}}

修改之后,可实现想的效果:


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表