在网页制作中,三级关联选择经常遇到,于是归纳了一个进行参考

代码如下:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script>
$(function(){
var Ocheckall = $('.type1'); // 获取全选元素
var Acheck_class1 = $('.type2');// 获取第一类选择元素
var Acheck_class3 = $('.type3');// 获取第二类选择元素
var Aquanbu = $('input'); // 所有选择元素集合
Ocheckall.on('click',function(){
Aquanbu.prop('checked',$(this).prop('checked')); // 获取当前全选元素的checked 属性值,将所有元素的checked 属性设置为这个值
});
Acheck_class1.on('click',function(){
$(this).parents('.box1').find('.type3').prop('checked',$(this).prop('checked')); // 获取当前元素的checked 属性值,将这个元素形式上的子类checked 属性设置为获取到的属性值
Acheck_class1.parent().find(':checked').length == Acheck_class1.length ? Ocheckall.prop('checked',true) : Ocheckall.prop('checked',false); // 判断第一类元素的已经选择的数量与第一类元素本身的个数是否相同,如果相同,则将全选元素设置为选中状态,否则设置为未选中状态
});
Acheck_class3.on('click',function(){
var curentlen = $(this).parents('.box2').find(':checked').length; // 获取当前第二类选择元素的选中的个数
var alen = $(this).parents('.box2').find('.type3').length; // 获取当前第二类选择元素的本身的个数
var Oyilei = $(this).parents('.box1').find('.type2'); // 获取当前选择元素的上级(形式上的)第一类选择元素
curentlen == alen ? Oyilei.prop('checked',true) : Oyilei.prop('checked',false); // 判断当前第二类选择元素的已经选择的个数与本身选择元素的个数是否相同,如果相同,则将 当前选择元素的上级(形式上的)第一类选择元素 的checked 属性设置为true,否则设置为false
Acheck_class1.parent().find(':checked').length == Acheck_class1.length ? Ocheckall.prop('checked',true) : Ocheckall.prop('checked',false); // 判断第一类元素的已经选择的数量与第一类元素本身的个数是否相同,如果相同,则将全选元素设置为选中状态,否则设置为未选中状态
});
});
</script>
</head>
<body>
<ul class="box">
<li><input type="checkbox" class="type1">全部 </li>
<ul class="box1">
<li> <input type="checkbox" class="type2">第一类 </li>
<ul class="box2">
<li> <input type="checkbox" class="type3">第1个 </li>
<li> <input type="checkbox" class="type3">第2个 </li>
<li> <input type="checkbox" class="type3">第3个 </li>
<li> <input type="checkbox" class="type3">第4个 </li>
</ul>
</ul>
<ul class="box1">
<li> <input type="checkbox" class="type2">第二类 </li>
<ul class="box2">
<li> <input type="checkbox" class="type3">第1个 </li>
<li> <input type="checkbox" class="type3">第2个 </li> </ul>
</ul>
<ul class="box1">
<li> <input type="checkbox" class="type2">第三类 </li>
<ul class="box2">
<li> <input type="checkbox" class="type3">第1个 </li>
<li> <input type="checkbox" class="type3">第2个 </li>
<li> <input type="checkbox" class="type3">第3个 </li>
</ul>
</ul>
<ul class="box1">
<li> <input type="checkbox" class="type2">第四类 </li>
<ul class="box2">
<li> <input type="checkbox" class="type3">第1个 </li>
<li> <input type="checkbox" class="type3">第2个 </li>
<li> <input type="checkbox" class="type3">第3个 </li>
<li> <input type="checkbox" class="type3">第4个 </li>
</ul>
</ul>
</ul>
</body>
</html>

运行结果:

备注:在代码中,获取元素的checked 属性值,用的函数是 prop() ,而不是attr();当然这两个函数都可以进行checked 设定,但是还是有一些差异的,可能会导致错误,如下:

// prop与attr在获取未选中状态时,返回值是不同的
// 如果是选中的 attr ----> checked, 如果没选中 attr -----> undefined
// 如果是选中的 prop ----> true, 如果没选中 prop -----> false

jquery 三级关联选择效果的更多相关文章

  1. asp.net mvc中使用jquery H5省市县三级地区选择控件

    地区选择是项目开发中常用的操作,本文讲的控件是在手机端使用的选择控件,不仅可以用于实现地区选择,只要是3个级别的选择都可以实现,比如专业选择.行业选择.职位选择等.效果如下图所示: 附:本实例asp. ...

  2. 利用select实现年月日三级联动的日期选择效果

    × 目录 [1]演示 [2]规划 [3]结构生成[4]算法处理 前面的话 关于select控件,可能年月日三级联动的日期选择效果是最常见的应用了.本文是选择框脚本的实践,下面将对日期选择效果进行详细介 ...

  3. jquery仿淘宝规格颜色选择效果

    jquery实现的仿淘宝规格颜色选择效果源代码如下 jquery仿淘宝规格颜色选择效果 -收缩HTML代码 运行代码 [如果运行无效果,请自行将源代码保存为html文件运行] <script t ...

  4. 使用 Sticky-Kit 实现基于 jQuery 的元素固定效果

    元素固定效果在网页中应用得很多,比较常见的使用场景有改进导航,显示广告.Sticky-Kit 是一个非常方便的 jQuery 插件,简化了创建/管理粘元素,有复杂的使用功能.这些功能包括:处理多个固定 ...

  5. 推荐20款基于 jQuery & CSS 的文本效果插件

    jQuery 和 CSS 可以说是设计和开发行业的一次革命.这一切如此简单,快捷的一站式服务.jQuery 允许你在你的网页中添加一些真正令人惊叹的东西而不用付出很大的努力,要感谢那些优秀的 jQue ...

  6. FancySelect – 更好用的 jQuery 下拉选择框插件

    FancySelect 这款插件是 Web 开发中下拉框功能的一个更好的选择.FancySelect 使用方便,只要绑定页面上的任何 Select 元素,并调用就 .fancySelect() 就可以 ...

  7. jquery Jquery 遍历 获取设置 效果

    speed: slow fast 毫秒 隐藏 显示 $(selector).hide(speed,callback) 隐藏. $(selector).show(speed,callback) 显示 $ ...

  8. js下拉框二级关联菜单效果代码具体实现

    这篇文章介绍了js下拉框二级关联菜单效果代码具体实现,有需要的朋友可以参考一下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...

  9. jQuery取得select选择的文本与值

    jquery获取select选择的文本与值获取select :获取select 选中的 text :$("#ddlregtype").find("option:selec ...

随机推荐

  1. 关于NOIP2014“无线网络发射器选址”一题的衍生题目的思考及思维方向

    无线网络发射器选址 题目描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的129 条东西向街道和129 条南北向街道所形 ...

  2. h5实现照片墙效果

    <style> *{ margin: 0; padding: 0; } body{ background: url(images/bg.jpg); } #div1{ width: 100% ...

  3. win8在安装office visio2003出现“请求的操作需要提升”,解决方法

    单击右键,然后以管理员身份运行即可

  4. TreeView简单的动态加载数据

    简单的小记录,省得去看控件属性详情了,基本常用的属于就几个 先是判断根节点是否存在控件中,如果不存在则创建,之前要添加了节点同样的方法 把根节点传到子节点的方法中,再判断是否在根节点里存在子节点,如果 ...

  5. IIS部署网站时常见问题解决

    首先服务器上安装IIS和Framework\v4.0 一.打开iis服务管理器 左侧目录中选择网站右键,选择添加网站 填写网站名称.选择项目存放的路径.ip地址和端口 VS用的是4.0,iis中网站也 ...

  6. js让input失去焦点

    要求:当我点击页面非文本框的地方,令文本框失去焦点 问题:一开始我的做法是让点击的地方得到焦点,实际上是无效的 $(this).focus(); 当时我也不知道为什么focus会失效,   问题在于f ...

  7. C++ regex库的三种正则表达式操作

    关于正则表达式的语法和字符含义,网上已经有很不错的博客教学,我当初参考的是 读懂正则表达式就这么简单 - Zery - 博客(http://www.cnblogs.com/zery/p/3438845 ...

  8. VS2008 C++ 利用WinHttp API获取任意Http网址的源码

    最近一直在看有关Http的知识,对其基本的理论知识已经有所掌握,想通过一个C++具体的例子进行实际操作..于是上网查找了很多资料,发现在Windows系统上,可以通过WinHttp API接口开啊Ht ...

  9. Android 开发笔记___图像视图__简单截屏

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  10. ajax请求发送和页面跳转的冲突

    http://blog.csdn.net/allenliu6/article/details/77341538?locationNum=7&fps=1 在A页面中,有一个click事件,点击时 ...