JQuery实现简单的复选框树形结构图示例【附源码下载】


Posted in jQuery onJuly 16, 2019

本文实例讲述了JQuery实现简单的复选框树形结构图。分享给大家供大家参考,具体如下:

JQuery实现简单的复选框树形结构图示例【附源码下载】

这是自己写的简单树形结构图,实现的功能有:

1.最左边的按钮实现子目录的隐藏和显示

2.点击父节点的复选框选中后,父节点下的所有的子节点也选中;父节点未选中,则下面的所有的子节点也取消选中(全选和全不选)

3.选中一个子节点时相应的父节点也选中;当所有的子节点都没有选中时,父节点也取消选中

这是实现的最简单的功能。下面来具体的谈谈具体的实现:

1.引入库

所有的这些操作都是通过JQuery来实现的,所以首先要引入JQuery库,可以到官网下载JQuery库,也可以通过CDN的方式来引用,这里我是通过CDN的方式引用的:

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

2.子目录的隐藏和显示

这里我只是做了一个简单的,可能看起来不是很美观,我的最左边放的是一个button按钮,并且没有经过CSS美化,所以看起来比较丑,不过这都不是重点,重点是我们功能的实现,由于我的代码比较简单并且注释我也写的比较详细了,所以这里我就不做过多的介绍,直接贴代码:

<!-- 切换子目录隐藏或显示的按钮 -->
<div class="div_inline"><input type="button" value="-" class="tree_node_toggle_button"></div>

上面是按钮,下面是按钮的点击事件:

// 为所有的切换按钮添加点击事件
$(".tree_node_toggle_button").click(function () {
  // 获取需要隐藏或显示的节点
  var $toggle_node = $(this).parent().next().find(".tree_node_child");
  $toggle_node.toggle(); // 切换隐藏或显示
  // 切换按钮的显示
  if($toggle_node.is(":visible")){
    $(this).val("-");
  }else{
    $(this).val("+");
  }
});

简单说明一下逻辑就是,点击按钮后,切换子目录的隐藏或显示,然后根据子目录的隐藏或显示状态,来重新设置按钮的显示'+'或者'-'

3.全选/全不选

// 为所有的父节点添加点击事件
$(".tree_node_parent_checkbox").click(function(){
    // 获取父节点是否选中
    var isChange = $(this).prop("checked");
    if(isChange){ // 如果选中,则父节点下的所有的子节点都选中
      // 获取当前checkbox节点的兄弟节点下的所有的checkbox子节点选中
      $(this).next().find(".tree_node_child_checkbox").prop("checked", true);
    }else{ // 未选中,取消全选
      // 获取当前checkbox节点的兄弟节点下的所有的checkbox子节点选中
      $(this).next().find(".tree_node_child_checkbox").removeAttr("checked");
    }
});

这里特别注意一下,切换checkbox的选中要用prop()方法,不能用attr(),如果用attr()首次是不能出现我们需要的效果的。关于prop和attr的区别可以去官网查看prop介绍JQuery prop 。

4.选中子节点后父节点的相应变化状态

// 为所有的子节点添加点击事件
$(".tree_node_child_checkbox").click(function () {
    // 获取选中的节点的父节点下的所有子节点选中的数量
    var length = $(this).parent().find(".tree_node_child_checkbox:checked").length;
    // 判断当前结点是否选中
    if($(this).prop("checked")){ // 选中
      // 如果当前节点选中后,所有的选中节点数量1,选中父节点
      if(length == 1){
        // 选中父节点
        $(this).parent().prev().prop("checked", true);
      }
    }else{ // 节点未选中
      if(length == 0){
        // 取消父节点的选中状态
        $(this).parent().prev().removeAttr("checked");
      }
    }
});

主要的代码就是这么多,其实也没什么复杂的。

完整实例代码点击此处本站下载

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
Jun 12 jQuery
jQuery validata插件实现方法
Jun 25 jQuery
js案例之鼠标跟随jquery版(实例讲解)
Jul 21 jQuery
jquery插件开发之选项卡制作详解
Aug 30 jQuery
jQuery实现table中两列CheckBox只能选中一个的示例
Sep 22 jQuery
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 jQuery
jQuery pjax 应用简单示例
Sep 20 jQuery
JQuery判断radio单选框是否选中并获取值的方法
Jan 17 jQuery
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
jquery将json转为数据字典的实例代码
Oct 11 jQuery
jquery实现简单拖拽效果
Jul 20 jQuery
jQuery+ajax实现文件上传功能
Dec 22 jQuery
jquery实现自定义树形表格的方法【自定义树形结构table】
Jul 12 #jQuery
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
Jul 11 #jQuery
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
Jul 10 #jQuery
JavaScript实现的滚动公告特效【基于jQuery】
Jul 10 #jQuery
JavaScript前端页面搜索功能案例【基于jQuery】
Jul 10 #jQuery
jquery多级树形下拉菜单的实例代码
Jul 09 #jQuery
jQuery删除/清空指定元素的所有子节点实例代码
Jul 04 #jQuery
You might like
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
JavaScript 学习 - 提高篇
2007/02/02 Javascript
你真的了解JavaScript吗?
2007/02/24 Javascript
JavaScript中的其他对象
2008/01/16 Javascript
jQuery技巧总结
2011/01/01 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
JS实现让网页背景图片斜向移动的方法
2015/02/25 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
详解JavaScript编程中的数组结构
2015/10/24 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
JavaScript 继承详解(六)
2016/10/11 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
React Native 截屏组件的示例代码
2017/12/06 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
宝塔面板成功部署Django项目流程(图文)
2020/06/22 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
python中if嵌套命令实例讲解
2021/02/25 Python
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
WiFi云数码相框:Nixplay
2018/07/05 全球购物
运动会四百米广播稿
2014/01/19 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
党的群众路线学习材料
2014/05/16 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
导游词之扬州大明寺
2019/10/09 职场文书