最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript作用域問題實例分析

 更新時間:2015年07月13日 08:57:04   投稿:hebedich  
本文給大家分享的是個人在使用json數(shù)據(jù)生成樹狀目錄的時候,由于作用域問題處理不當(dāng)引起的一個小BUG的修復(fù)過程,小伙伴們需要的話可以參考下。

最近做項目過程中需要根據(jù)JSON數(shù)據(jù)生成一個樹狀的目錄,結(jié)果代碼如下:

var folderList=[
  {
    "FolderName": "ASD",
    "ChildList": null
  },
  {
    "FolderName": "內(nèi)網(wǎng)公告",
    "ChildList": null
  },
  {
    "FolderName": "測試文檔",
    "ChildList": null
  },
  {
    "FolderName": "軟件開發(fā)",
    "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 += '<div class="sui-list sui-list-icon ubt bc-gra1">';
          for (var i = 0, len = arr.length; i < len; i++) {
            str += '<ul class="ub ub-ac">' 
                + '<li class="sui-list-licon sui-icon-ok-circle fts2">' + '</li>' 
                + '<ul class="ub ub-f1 sui-list-item">' 
                 + '<li class="ub-f1 sui-list-text sui-list-nowrap">' + arr[i].FolderName + '</li>' 
                 + '<li class="sui-list-ricon ub-img sui-icon-chevron-right fts2"></li>' 
                + '</ul>' 
               + '</ul>';
            if (isDefine(arr[i].ChildList)) {
              str += generateFolders(arr[i].ChildList);
            }
          }
          str += '</div>';
          return str;
        }else{
          return '';
        }
      }

      var folderTxt ='<div class="sui-list sui-list-icon ubt bc-gra1">' 
                 +'<ul class="ub ub-ac">' 
                   +'<li class="sui-list-licon sui-icon-drawer fts2">' + '</li>' 
                   +'<ul class="ub ub-f1 sui-list-item">' 
                     +'<li class="ub-f1 sui-list-text sui-list-nowrap">我的目錄</li>' 
                     +'<li class="sui-list-ricon ub-img sui-icon-chevron-right fts2"></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;
        }
      }

結(jié)果出來的樹如下圖:

經(jīng)排查,發(fā)現(xiàn)是由于str定義的位置不對引起的,將str定義為局部變量就可以了。

function generateFolders(arr) {
        var str='';
        if (arr.length > 0) {
          str += '<div class="sui-list sui-list-icon ubt bc-gra1">';
          for (var i = 0, len = arr.length; i < len; i++) {
            str += '<ul class="ub ub-ac">' 
                + '<li class="sui-list-licon sui-icon-ok-circle fts2"></li>' 
                + '<ul class="ub ub-f1 sui-list-item">' 
                  + '<li class="ub-f1 sui-list-text sui-list-nowrap">' + arr[i].FolderName + '</li>' 
                  + '<li class="sui-list-ricon ub-img sui-icon-chevron-right fts2"></li>' 
                + '</ul>' 
              + '</ul>';
            if (isDefine(arr[i].ChildList)) {
              str += generateFolders(arr[i].ChildList);
            }
          }
          str += '</div>';
          return str;
        }else{
          return '';
        }
      }

修改之后,可實現(xiàn)想的效果:

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • bootstrap選項卡使用方法解析

    bootstrap選項卡使用方法解析

    這篇文章主要為大家詳細(xì)介紹了bootstrap選項卡使用方法,包括選項卡組件和底部可以切換的選項卡面板使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Javascript查看大圖功能代碼實現(xiàn)

    Javascript查看大圖功能代碼實現(xiàn)

    這篇文章主要介紹了Javascript查看大圖功能代碼實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • JS動態(tài)日期時間的獲取方法

    JS動態(tài)日期時間的獲取方法

    這篇文章主要介紹了js獲得當(dāng)前系統(tǒng)日期時間的方法,涉及javascript操作日期時間的相關(guān)技巧,非常簡單實用,需要的朋友可以參考下
    2015-09-09
  • 靜態(tài)頁面實現(xiàn) include 引入公用代碼的示例

    靜態(tài)頁面實現(xiàn) include 引入公用代碼的示例

    下面小編就為大家?guī)硪黄o態(tài)頁面實現(xiàn) include 引入公用代碼的示例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • JavaScript實現(xiàn)動態(tài)表格效果

    JavaScript實現(xiàn)動態(tài)表格效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)動態(tài)表格效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • uniapp自定義tabbar的方法(支持中間凸起、角標(biāo)、動態(tài)隱藏tab和全端適用)

    uniapp自定義tabbar的方法(支持中間凸起、角標(biāo)、動態(tài)隱藏tab和全端適用)

    一個項目有多個角色,比如醫(yī)生和患者,tabBar跳轉(zhuǎn)的路徑不一樣,但是在pages.json中無法配置多個tabBar,這時候就要自定義tabBar了,下面這篇文章主要給大家介紹了關(guān)于uniapp自定義tabbar(支持中間凸起、角標(biāo)、動態(tài)隱藏tab和全端適用)的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • JavaScript輸入分鐘、秒倒計時技巧總結(jié)(附代碼)

    JavaScript輸入分鐘、秒倒計時技巧總結(jié)(附代碼)

    這篇文章主要介紹了JavaScript輸入分鐘、秒倒計時的代碼實現(xiàn),通過css和js代碼展示了邏輯過程,具體操作步驟大家可查看下文的詳細(xì)講解,感興趣的小伙伴們可以參考一下。
    2017-08-08
  • JavaScript設(shè)計模式經(jīng)典之工廠模式

    JavaScript設(shè)計模式經(jīng)典之工廠模式

    工廠模式定義一個用于創(chuàng)建對象的接口,這個接口由子類決定實例化哪一個類。接下來通過本文給大家介紹JavaScript設(shè)計模式經(jīng)典之工廠模式,感興趣的朋友一起學(xué)習(xí)吧
    2016-02-02
  • JS中跨頁面調(diào)用變量和函數(shù)的方法(例如a.js 和 b.js中互相調(diào)用)

    JS中跨頁面調(diào)用變量和函數(shù)的方法(例如a.js 和 b.js中互相調(diào)用)

    下面小編就為大家?guī)硪黄狫S中跨頁面調(diào)用變量和函數(shù)的方法(例如a.js 和 b.js中互相調(diào)用)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • 監(jiān)控 url fragment變化的js代碼

    監(jiān)控 url fragment變化的js代碼

    url 里面的 #后面的部分 可以實現(xiàn)無刷新的改變url 的值。這個特點非常有用。比如視頻網(wǎng)站土豆中的豆單,你進入視頻列表以后,點擊播放某個視頻。
    2010-04-04

最新評論

廊坊市| 磐石市| 永丰县| 滦平县| 无极县| 麦盖提县| 翁牛特旗| 洛南县| 安新县| 习水县| 万年县| 张掖市| 宁海县| 福海县| 盐源县| 棋牌| 和田市| 陕西省| 竹北市| 山阳县| 茂名市| 卢湾区| 临夏县| 福泉市| 板桥市| 惠州市| 惠东县| 沅陵县| 长治县| 沂水县| 鄂伦春自治旗| 武山县| 焉耆| 涞源县| 德格县| 东兰县| 竹北市| 青浦区| 竹北市| 平凉市| 大名县|