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 相关文章推荐
模拟select的代码
Oct 19 Javascript
javascript的console.log()用法小结
May 31 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
Oct 29 Javascript
Js实现网页键盘控制翻页的方法
Oct 30 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
Mar 25 Javascript
JS中如何比较两个Json对象是否相等实例代码
Jul 13 Javascript
jQuery为某个div加入行样式
Jun 09 jQuery
ES6中新增的Object.assign()方法详解
Sep 22 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
Aug 08 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
Oct 11 Javascript
js的Object.assign用法示例分析
Mar 05 Javascript
如何利用JS将手机号中间四位变成*号
Sep 29 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
什么是MVC,好东西啊
2007/05/03 PHP
php调用shell的方法
2014/11/05 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
2014/08/18 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
2016/05/17 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
js移动焦点到最后位置的简单方法
2016/11/25 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
2016/12/26 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
js数据类型检测总结
2018/08/05 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
python 实现归并排序算法
2012/06/05 Python
python简单实现刷新智联简历
2016/03/30 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
pandas数值计算与排序方法
2018/04/12 Python
Python3最长回文子串算法示例
2019/03/04 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
2020/04/21 Python
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
Bonami斯洛伐克:购买家具和家居饰品
2019/07/02 全球购物
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
党委书记岗位职责
2013/11/24 职场文书
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
CAD制图人员的自荐信
2014/02/07 职场文书
四年大学自我鉴定
2014/02/17 职场文书
护理专业学生职业生涯规划范文
2014/03/11 职场文书
四风查摆剖析材料
2014/10/10 职场文书
2015入党自传格式范文
2015/06/26 职场文书
总结会主持词
2015/07/02 职场文书
vue首次渲染全过程
2021/04/21 Vue.js