Jquery 实现checkbox全选方法


Posted in Javascript onJanuary 28, 2015

昨天早上有写到怎么利用Jquery实现全选

根据大家的意见对程序中一些写法不好的地方进行了修改,也是本人水平有限,存在各种考虑不到的地方。

文章最后我提出了一个问题,要写一个通用的方法来调用,于是就有了现在的这篇文章,晚上回到家,我就写出了效果

下面的例子可以供大家讨论学习,如果觉得不错也可以直接应用到项目中。

1:为什么要写这个方法

   网上实现一句话全选全不选的有很多,但是好像都忽略了一个问题,全选的checkbox可以控制下面的子checkbox,但是下面的子checkbox应该也可以控制上面的全选,这样就有了我的这个方法。

2:开发过程:要实现通用就要解决2个问题,怎么分组,怎么判断组里面哪个checkbox为全选,我想了想,觉得用name分组可以,

用class来判断是否是需要全选的checkbox组。先找到所有class为需要全选的,再找出name属性,根据name属性就可以找到其他的子checkbox,只要找到元素就可以进行操作了

3:文件,下面是我实现的js,保存为xs_checkbox_all.js

$(document).ready(function () {

    var xsChk = "xsChk";//定义的样式

    var xsChkAll = "input[type='checkbox'][class='" + xsChk + "'][name]";//所有定义此样式的checkbox

    $(xsChkAll).each(function () {

        var name = $(this).attr("name");

        name = "input[type='checkbox'][class!='" + xsChk + "'][name='" + name + "']";//此全选框下面的子checkbox

        $(this).click(function () {

            $(name).attr("checked", $(this)[0].checked);

        })

        var xschk = $(this);

        $(name).click(function () {

            var IAll = $(name).length; //此子项目下所有checkbox的个数

            var IChk = $(name + ":checked").length; //此子项目下所有勾选checkbox的个数

            var isAllChecked = true; //是否是全选

            if (IAll != IChk) {

                isAllChecked = false;

            }

            $(xschk).attr("checked", isAllChecked);

        });

    });

});

页面使用

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title></title>

</head>

<body>

    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js" type="text/javascript">

    </script>

    <script src="xs_checkbox_all.js" type="text/javascript"></script>

    <fieldset>

        <legend>全选one</legend>

        <input type="checkbox" class="xsChk" name="chk" />

        全选

    <div>

        <input type="checkbox" name="chk" />

        1<br />

        <input type="checkbox" name="chk" />

        2<br />

        <input type="checkbox" name="chk" />

        3<br />

        <input type="checkbox" name="chk" />

        4<br />

    </div>

    </fieldset>

    <fieldset>

        <legend>全选two</legend>

        <input type="checkbox" class="xsChk" name="chk1" />

        全选2

    <div>

        <input type="checkbox" name="chk1" />

        11<br />

        <input type="checkbox" name="chk1" />

        22<br />

        <input type="checkbox" name="chk1" />

        33<br />

        <input type="checkbox" name="chk1" />

        44<br />

    </div>

    </fieldset>

</body>

</html>

可以达到效果,如果有什么优化的地方,请大家提出,我会做的更好,谢谢大家了,以上就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
Oct 20 Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
Mar 07 Javascript
求数组最大最小值方法适用于任何数组
Aug 16 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
Dec 25 Javascript
通过JS来判断页面控件是否获取焦点
Jan 03 Javascript
js实现进度条的方法
Feb 13 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
Oct 12 Javascript
jquery checkbox的相关操作总结
Oct 17 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
Dec 02 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
Jan 21 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
Aug 22 Javascript
vue缓存之keep-alive的理解和应用详解
Nov 02 Javascript
AngularJS实现表单验证
Jan 28 #Javascript
jQuery制作简单柱状图实例
Jan 28 #Javascript
js分页工具实例
Jan 28 #Javascript
js制作简易年历完整实例
Jan 28 #Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
Jan 28 #Javascript
调试JavaScript中正则表达式中遇到的问题
Jan 27 #Javascript
JavaScript插件化开发教程 (四)
Jan 27 #Javascript
You might like
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
php实现的http请求封装示例
2016/11/08 PHP
浅谈PHP的反射机制
2016/12/15 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
vue实现商品加减计算总价的实例代码
2018/08/12 Javascript
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
python实现博客文章爬虫示例
2014/02/26 Python
Python创建xml的方法
2015/03/10 Python
详细解读Python中解析XML数据的方法
2015/10/15 Python
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
Django Rest framework三种分页方式详解
2019/07/26 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
国庆节标语大全
2014/10/08 职场文书
同学聚会感言一句话
2015/07/30 职场文书
2016春节放假通知范文
2015/08/18 职场文书
护理自荐信
2019/05/14 职场文书
python批量创建变量并赋值操作
2021/06/03 Python
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js