jqeury checkbox全选/反选 ,子选项全选,全选选中

2023-11-30 06:18

本文主要是介绍jqeury checkbox全选/反选 ,子选项全选,全选选中,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

// 全选/反选
$('input[name="checkall"]').click(function() {$('input[name="checkone"]').prop("checked", this.checked); 
});//子选项全选,全选选中
$('input[name="checkone"]').click(function() {var length = $('input[name="checkone"]').length;var num = 0;$("input[name='checkone']").each(function(){one_checkd = $(this).prop('checked');if(one_checkd == true){num++;}});if (length == num) {$('input[name="checkall"]').prop('checked', true);}else{$('input[name="checkall"]').prop('checked', false);};
});

现在又多了一种结构,在有一个全选的情况下,还有三个子类,每个子类也都有全选。

逻辑是这样的:

最大的那个全选 选中的情况下 所有的 子按钮全都选中,包括那三个子类全选,反之都取消。

三个子类全选 单个选中的情况下,自己范围内的子项选中。如三个子类全选全部选中,则最大的那个全选选中。反之只要有一个没有选中,则最大的那个全选取消。

最后,所有的子项选中:原来是只要全部选中,则全选选中,现在由于上面还多了一次。所以要每个区域的子选项的上面那个全选要选中,最后所有子选项选中后,最大的那个选中也选中。

可以对应这dom图看

最后上代码:

// 教师 全选/反选
$('.rules-content').on('click', 'input[name="teacherall"]', function () {$('input[name="teacherone"]').prop("checked", this.checked);$('input[name="subjectTeacherall"]').prop("checked", this.checked);
});// 教师 子选项全选,全选选中
$('.rules-content').on('click', 'input[name="teacherone"]', function () {var length = $('input[name="teacherone"]').length; // 获取所有教师的数量var num = 0, singleSectionNum = 0;$("input[name='teacherone']").each(function () { // 获取所有单个教师选中的数量one_checkd = $(this).prop('checked');if (one_checkd == true) {num++;}});// 所有教师 == 选中的教师if (length == num) { $('input[name="teacherall"]').prop('checked', true);} else {$('input[name="teacherall"]').prop('checked', false);};var singleSectionLength = $(this).parent().parent().parent().children().length; // 获取单科教师的数量// 循环 单科下选中教师$(this).parent().parent().parent().children().each(function () {one_checkd = $(this).children().children().prop('checked');if (one_checkd == true) {singleSectionNum++;}})// 单科所有教师 == 单科选中的教师if (singleSectionLength == singleSectionNum) { $(this).parent().parent().parent().prev().find('input[name="subjectTeacherall"]').prop('checked', true);} else {$(this).parent().parent().parent().prev().find('input[name="subjectTeacherall"]').prop('checked', false);};});// 单科教师 全选/反选
$('.rules-content').on('click', 'input[name="subjectTeacherall"]', function () {$(this).parent().parent().next().find('input[name="teacherone"]').prop("checked", this.checked);var temp = 0;$('input[name="subjectTeacherall"]').each(function () { //循环获取 单科全选未选中的数量if (this.checked == false) {temp++;};})if (temp == 0) { //如全部单科选中,则顶部全部选中$('input[name="teacherall"]').prop("checked", true);} else {$('input[name="teacherall"]').prop("checked", false);}
});

dom 结构代码

<div class="rules-content"><div><label><input type="checkbox" name="teacherall" id="">全选</label></div><div class="teacher-wrap"><div><label><input type="checkbox" name="subjectTeacherall" id="">语文老师</label></div><ul class="teacher-list clearfix"><li><label><input type="checkbox" name="teacherone" id="">宁夏</label></li><li><label><input type="checkbox" name="teacherone" id="">宁夏</label></li><li><label><input type="checkbox" name="teacherone" id="">宁夏</label></li><li><label><input type="checkbox" name="teacherone" id="">宁夏</label></li></ul></div><div class="teacher-wrap"><div><label><input type="checkbox" name="subjectTeacherall" id="">数学老师</label></div><ul class="teacher-list clearfix"><li><label><input type="checkbox" name="teacherone" id="">宁夏</label></li><li><label><input type="checkbox" name="teacherone" id="">宁夏</label></li><li><label><input type="checkbox" name="teacherone" id="">宁夏</label></li><li><label><input type="checkbox" name="teacherone" id="">宁夏</label></li></ul></div><div class="teacher-wrap"><div><label><input type="checkbox" name="subjectTeacherall" id="">其他任课老师</label></div><ul class="teacher-list clearfix"><li><label><input type="checkbox" name="teacherone" id="">宁夏</label></li><li><label><input type="checkbox" name="teacherone" id="">宁夏</label></li><li><label><input type="checkbox" name="teacherone" id="">宁夏</label></li><li><label><input type="checkbox" name="teacherone" id="">宁夏</label></li></ul></div>
</div>

 

这篇关于jqeury checkbox全选/反选 ,子选项全选,全选选中的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/435935

相关文章

OpenStack:Glance共享与上传、Nova操作选项解释、Cinder操作技巧

目录 Glance member task Nova lock shelve rescue Cinder manage local-attach transfer backup-export 总结 原作者:int32bit,参考内容 从2013年开始折腾OpenStack也有好几年的时间了。在使用过程中,我发现有很多很有用的操作,但是却很少被提及。这里我暂不直接

OpenStack实例操作选项解释:启动和停止instance实例

关于启动和停止OpenStack实例 如果你想要启动和停止OpenStack实例时,有四种方法可以考虑。 管理员可以暂停、挂起、搁置、停止OpenStack 的计算实例。但是这些方法之间有什么不同之处? 目录 关于启动和停止OpenStack实例1.暂停和取消暂停实例2.挂起和恢复实例3.搁置(废弃)实例和取消废弃实例4.停止(删除)实例 1.暂停和取消暂停实例

纯css实现checkbox的checked样式

纯css也能实现checked样式 今天使用微信的WEUI的checkbox的时候,发现点击checkbox是有checked和unchecked的变化的,但是想要去获得checkbox的checked状态时,发现event listener里居然没有该checkbox的click之类的事件。这才发现,weui只是纯粹的css样式,没有对应组件的js代码。那么问题来了,没有js事件,weui是如

学习整理使用jquery实现获取相同name被选中的多选框值的方法

学习整理使用jquery实现获取相同name被选中的多选框值的方法 <html><head><meta charset="gbk"><!-- 引入JQuery --><script src="https://www.qipa250.com/jquery/dist/jquery.min.js" type="text/javascript"></script></head><body>

查看Excel 中的 Visual Basic 代码,要先设置excel选项

1. excel VB的简单介绍 百度安全验证 2.excel选项设置 excel表格中在选项->自定义功能区域,选择开发工具,visual baisc/查看代码,即可看到代码。 3.excel已经设置,可以直接查看

proe5.0 config.pro 选项清理垃圾关系

proe5.0 config.pro 选项:  cleanup_drawing_dependencies YES_CS_NOT_REQUIRED c leanup_layout_dependencies YES_CS_NOT_REQUIRED 可以清理所有不应该存在的依赖关系 在某些情况下,图纸、布局和模型可能包含对模型的不需要的默认、幽灵、无效、旧的或遗留引用或者垃圾引用,如何删除这些引用?

js 控制 checkbox不选中

js 控制 checkbox不选中 $("input[name=‘myName’]").prop("checked",false);

前端百科---点击文字选中Radio

在进行Web过程中,Radio单选是必不可少的.但是如果用户只能通过点击Radio的圆圈才能实现选项的选择,这样就会导致交互不够好...       怎么解决呢?使用JavaScript当然可以,但是直接使用HTML5自带属性不是更好吗?       废话少说,直接上demo:       第一种:label标签使用for属性指向input:radio;       第二

easyui 选中行在按一次取消选中

<table id="dg" style="height:100%" ></table><script>$(function () {var columns=[{field:'name',title:'菜单名称',width:200,align:'left'},{field:'app',title:'应用名称',width:100,align:'left'},{field:'controller

Element-ui设置table 选中某行高亮自定义背景色

Element-ui设置table 选中某行高亮自定义背景色 在el-table标签中添加单选 highlight-current-row <el-table highlight-current-row @row-click="mainBodySelectionChange"></el-table> 在style中设置颜色 /* 设置当前页面element全局table 选中某行时的背景色