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 相关文章推荐
深入认识JavaScript中的函数
Jan 22 Javascript
js修改table中Td的值(定义td的双击事件)
Jan 10 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
Jan 11 Javascript
原生JavaScript+LESS实现瀑布流
Dec 12 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
Dec 26 Javascript
JavaScript中调用函数的4种方式代码实例
Jul 08 Javascript
基于JS实现的倒计时程序实例
Jul 24 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
Aug 01 Javascript
基于js实现二级下拉联动
Dec 17 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
Jan 13 Javascript
JS使用对象的defineProperty进行变量监控操作示例
Feb 02 Javascript
three.js 实现露珠滴落动画效果的示例代码
Mar 01 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
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
php中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
xml和web特殊字符
2009/04/28 Javascript
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
js 连接数据库如何操作数据库中的数据
2012/11/23 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
原始XMLHttpRequest方法详情回顾
2013/11/28 Javascript
AngularJS入门教程(二):AngularJS模板
2014/12/06 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
Angular2安装angular-cli
2017/05/21 Javascript
require.js 加载过程与使用方法介绍
2018/10/30 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
详解python并发获取snmp信息及性能测试
2017/03/27 Python
Python中selenium实现文件上传所有方法整理总结
2017/04/01 Python
Python之re操作方法(详解)
2017/06/14 Python
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
连锁经营管理专业大学生求职信
2013/10/30 职场文书
物控部经理职务说明书
2014/02/25 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
2014年工程工作总结
2014/11/25 职场文书
质量保证书格式
2015/02/27 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL