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

JQuery實現(xiàn)簡單的復選框樹形結(jié)構(gòu)圖示例【附源碼下載】

 更新時間:2019年07月16日 10:15:55   作者:愛在彩虹  
這篇文章主要介紹了JQuery實現(xiàn)簡單的復選框樹形結(jié)構(gòu)圖,涉及jQuery頁面元素屬性動態(tài)操作與事件響應相關(guān)操作技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下

本文實例講述了JQuery實現(xiàn)簡單的復選框樹形結(jié)構(gòu)圖。分享給大家供大家參考,具體如下:

這是自己寫的簡單樹形結(jié)構(gòu)圖,實現(xiàn)的功能有:

1.最左邊的按鈕實現(xiàn)子目錄的隱藏和顯示

2.點擊父節(jié)點的復選框選中后,父節(jié)點下的所有的子節(jié)點也選中;父節(jié)點未選中,則下面的所有的子節(jié)點也取消選中(全選和全不選)

3.選中一個子節(jié)點時相應的父節(jié)點也選中;當所有的子節(jié)點都沒有選中時,父節(jié)點也取消選中

這是實現(xiàn)的最簡單的功能。下面來具體的談談具體的實現(xiàn):

1.引入庫

所有的這些操作都是通過JQuery來實現(xiàn)的,所以首先要引入JQuery庫,可以到官網(wǎng)下載JQuery庫,也可以通過CDN的方式來引用,這里我是通過CDN的方式引用的:

<!-- 引入JQuery -->
<script src="https://cdn.bootcss.com/jquery/3.0.0-alpha1/jquery.min.js"></script>

2.子目錄的隱藏和顯示

這里我只是做了一個簡單的,可能看起來不是很美觀,我的最左邊放的是一個button按鈕,并且沒有經(jīng)過CSS美化,所以看起來比較丑,不過這都不是重點,重點是我們功能的實現(xiàn),由于我的代碼比較簡單并且注釋我也寫的比較詳細了,所以這里我就不做過多的介紹,直接貼代碼:

<!-- 切換子目錄隱藏或顯示的按鈕 -->
<div class="div_inline"><input type="button" value="-" class="tree_node_toggle_button"></div>

上面是按鈕,下面是按鈕的點擊事件:

// 為所有的切換按鈕添加點擊事件
$(".tree_node_toggle_button").click(function () {
  // 獲取需要隱藏或顯示的節(jié)點
  var $toggle_node = $(this).parent().next().find(".tree_node_child");
  $toggle_node.toggle(); // 切換隱藏或顯示
  // 切換按鈕的顯示
  if($toggle_node.is(":visible")){
    $(this).val("-");
  }else{
    $(this).val("+");
  }
});

簡單說明一下邏輯就是,點擊按鈕后,切換子目錄的隱藏或顯示,然后根據(jù)子目錄的隱藏或顯示狀態(tài),來重新設置按鈕的顯示'+'或者'-'

3.全選/全不選

// 為所有的父節(jié)點添加點擊事件
$(".tree_node_parent_checkbox").click(function(){
    // 獲取父節(jié)點是否選中
    var isChange = $(this).prop("checked");
    if(isChange){ // 如果選中,則父節(jié)點下的所有的子節(jié)點都選中
      // 獲取當前checkbox節(jié)點的兄弟節(jié)點下的所有的checkbox子節(jié)點選中
      $(this).next().find(".tree_node_child_checkbox").prop("checked", true);
    }else{ // 未選中,取消全選
      // 獲取當前checkbox節(jié)點的兄弟節(jié)點下的所有的checkbox子節(jié)點選中
      $(this).next().find(".tree_node_child_checkbox").removeAttr("checked");
    }
});

這里特別注意一下,切換checkbox的選中要用prop()方法,不能用attr(),如果用attr()首次是不能出現(xiàn)我們需要的效果的。關(guān)于prop和attr的區(qū)別可以去官網(wǎng)查看prop介紹JQuery prop

4.選中子節(jié)點后父節(jié)點的相應變化狀態(tài)

// 為所有的子節(jié)點添加點擊事件
$(".tree_node_child_checkbox").click(function () {
    // 獲取選中的節(jié)點的父節(jié)點下的所有子節(jié)點選中的數(shù)量
    var length = $(this).parent().find(".tree_node_child_checkbox:checked").length;
    // 判斷當前結(jié)點是否選中
    if($(this).prop("checked")){ // 選中
      // 如果當前節(jié)點選中后,所有的選中節(jié)點數(shù)量1,選中父節(jié)點
      if(length == 1){
        // 選中父節(jié)點
        $(this).parent().prev().prop("checked", true);
      }
    }else{ // 節(jié)點未選中
      if(length == 0){
        // 取消父節(jié)點的選中狀態(tài)
        $(this).parent().prev().removeAttr("checked");
      }
    }
});

主要的代碼就是這么多,其實也沒什么復雜的。

完整實例代碼點擊此處本站下載。

更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jQuery操作DOM節(jié)點方法總結(jié)》、《jQuery頁面元素操作技巧匯總》、《jQuery常用插件及用法總結(jié)》、《jQuery表格(table)操作技巧匯總》、《jQuery擴展技巧總結(jié)》、《jQuery常見經(jīng)典特效匯總》及《jquery選擇器用法總結(jié)

希望本文所述對大家jQuery程序設計有所幫助。

相關(guān)文章

最新評論

惠州市| 泰州市| 丹寨县| 永德县| 兴业县| 龙口市| 元谋县| 阳山县| 芜湖县| 永平县| 沁源县| 织金县| 林甸县| 新田县| 华亭县| 嘉荫县| 信阳市| 五家渠市| 应城市| 大厂| 婺源县| 红安县| 定结县| 定西市| 新乐市| 阳曲县| 武邑县| 盱眙县| 仙居县| 阜宁县| 岱山县| 泗阳县| 东海县| 大石桥市| 青田县| 浦江县| 鄂伦春自治旗| 宜兴市| 卓资县| 太谷县| 朔州市|