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 相关文章推荐
JS实现清除指定cookies的方法
Sep 20 Javascript
基于zepto的移动端轻量级日期插件--date_picker
Mar 04 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
Oct 18 Javascript
巧用数组制作图片切换js代码
Nov 29 Javascript
vue 2.0项目中如何引入element-ui详解
Sep 06 Javascript
微信小程序图片选择区域裁剪实现方法
Dec 02 Javascript
解决vue 打包发布去#和页面空白的问题
Sep 04 Javascript
vue + element-ui的分页问题实现
Dec 17 Javascript
vue车牌号校验和银行校验实战
Jan 23 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
May 16 Javascript
ES6 class的应用实例分析
Jun 27 Javascript
小程序如何自主实现拦截器的示例代码
Nov 04 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 ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
javascript onmouseout 解决办法
2010/07/17 Javascript
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
js图片卷帘门导航菜单特效代码分享
2015/09/10 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
2016/08/11 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
详解JS中统计函数执行次数与执行时间
2018/09/04 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
python+Splinter实现12306抢票功能
2018/09/25 Python
Python中logging实例讲解
2019/01/17 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
2019/08/05 Python
HTML5中的autofocus(自动聚焦)属性介绍
2014/04/23 HTML / CSS
英国旅游额外服务市场领导者:Holiday Extras(机场停车场、酒店、接送等)
2017/10/07 全球购物
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
酒店管理专业毕业生求职自荐信
2014/04/28 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
党员个人自我评价
2015/03/03 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang
Mysql基础知识点汇总
2021/05/26 MySQL
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python