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 相关文章推荐
jQuery的Ajax时无响应数据的解决方法
May 25 Javascript
javascript中全局对象的parseInt()方法使用介绍
Dec 19 Javascript
浅谈Javascript中的Function与Object
Jan 26 Javascript
JavaScript中的parse()方法使用简介
Jun 12 Javascript
Sortable.js拖拽排序使用方法解析
Nov 04 Javascript
js实现固定宽高滑动轮播图效果
Jan 13 Javascript
js常用DOM方法详解
Feb 04 Javascript
详解vue移动端项目代码拆分记录
Mar 15 Javascript
微信小程序常用赋值方法小结
Apr 30 Javascript
Weex开发之地图篇的具体使用
Oct 16 Javascript
vue props对象validator自定义函数实例
Nov 13 Javascript
通过JS判断网页是否为手机打开
Oct 28 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
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
简单实用的.net DataTable导出Execl
2013/10/28 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
2016/05/18 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
Aster vs Newbee BO3 第三场2.18
2021/03/10 DOTA
JavaScript中的fontsize()方法使用详解
2015/06/08 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
Angular路由简单学习
2016/12/26 Javascript
jQuery中的siblings()是什么意思(推荐)
2016/12/29 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
进一步理解Python中的函数编程
2015/04/13 Python
进一步了解Python中的XML 工具
2015/04/13 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
python快速编写单行注释多行注释的方法
2019/07/31 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
台湾旅游网站:灿星旅游
2018/10/11 全球购物
贝尔帐篷精品店:Bell Tent Boutique
2019/06/12 全球购物
应届毕业生个人自我评价
2013/09/20 职场文书
销售部主管岗位职责
2013/12/18 职场文书
法律专业实习鉴定
2013/12/22 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
信息技术毕业生自荐信范文
2014/03/13 职场文书
企业党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
检讨书模板大全
2015/05/07 职场文书
新店开张宣传语
2015/07/13 职场文书
Python实现打乒乓小游戏
2021/09/25 Python
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技