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 相关文章推荐
jQuery EasyUI之验证框validatebox实例详解
Apr 10 jQuery
jQuery 控制文本框自动缩小字体填充
Jun 16 jQuery
原生js jquery ajax请求以及jsonp的调用方法
Aug 04 jQuery
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 jQuery
jQuery获取复选框选中的当前行的某个字段的值
Sep 15 jQuery
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 jQuery
JQuery实现ajax请求的示例和注意事项
Dec 10 jQuery
jquery.pager.js实现分页效果
Jul 29 jQuery
JQuery中的常用事件、对象属性与使用方法分析
Dec 23 jQuery
jQuery实现点击滚动到指定元素上的方法分析
Mar 19 jQuery
jquery实现简易验证插件封装
Sep 13 jQuery
jQuery实现购物车全功能
Jan 11 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
建立文件交换功能的脚本(一)
2006/10/09 PHP
一个PHP缓存类代码(附详细说明)
2011/06/09 PHP
PHP中其实也可以用方法链
2011/11/10 PHP
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
php跨服务器访问方法小结
2015/05/12 PHP
关于使用runtimeStyle属性问题讨论文章
2007/03/08 Javascript
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
jquery maxlength使用说明
2011/09/09 Javascript
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
js实现一个可以兼容PC端和移动端的div拖动效果实例
2016/12/09 Javascript
Bootstrap源码解读导航(6)
2016/12/23 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
2017/10/15 jQuery
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
答题辅助python代码实现
2018/01/16 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
基于PyTorch中view的用法说明
2021/03/03 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
幼儿教师自我鉴定
2013/11/02 职场文书
会议开场欢迎词
2014/01/15 职场文书
护士节演讲稿开场白
2014/08/25 职场文书
环境保护建议书
2014/08/26 职场文书
机关作风建设剖析材料
2014/10/11 职场文书
夫妻分居协议书范本
2014/11/28 职场文书
团支部组织委员竞选稿
2015/11/21 职场文书
python基础之类属性和实例属性
2021/10/24 Python