栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

javascript作用域问题实例分析

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

javascript作用域问题实例分析

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

var folderList=[
  {
    "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
  }
];
      var str='';
      function generateFolders(arr) {
 if (arr.length > 0) {
   str += '';
   for (var i = 0, len = arr.length; i < len; i++) {
     str += '
    ' + '
  • ' + '
  • ' + '
      ' + '
    • ' + arr[i].FolderName + '
    • ' + '
    • ' + '
    ' + '
'; if (isDefine(arr[i].ChildList)) { str += generateFolders(arr[i].ChildList); } } str += ''; return str; }else{ return ''; } } var folderTxt ='' +'
    ' +'
  • ' + '
  • ' +'
      ' +'
    • 我的目录
    • ' +'
    • ' +'
    ' +'
'; folderTxt+=generateFolders(folderList); folderTxt += ''; $('#list').html(folderTxt); 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定义为局部变量就可以了。

function generateFolders(arr) {
 var str='';
 if (arr.length > 0) {
   str += '';
   for (var i = 0, len = arr.length; i < len; i++) {
     str += '
    ' + '
  • ' + '
      ' + '
    • ' + arr[i].FolderName + '
    • ' + '
    • ' + '
    ' + '
'; if (isDefine(arr[i].ChildList)) { str += generateFolders(arr[i].ChildList); } } str += ''; return str; }else{ return ''; } }

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

以上所述就是本文的全部内容了,希望大家能够喜欢。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/101658.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号