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 相关文章推荐
AJAX架构之Dojo篇
Apr 10 Javascript
setInterval 和 setTimeout会产生内存溢出
Feb 15 Javascript
Javascript面向对象设计一 工厂模式
Dec 20 Javascript
浅析LigerUi开发中谨慎载入common.css文件
Jul 09 Javascript
javascript的渐进增强与平稳退化浅谈
Nov 12 Javascript
javascript内置对象arguments详解
Mar 16 Javascript
jquery中show()、hide()和toggle()用法实例
Jan 15 Javascript
Node.js连接postgreSQL并进行数据操作
Dec 18 Javascript
微信小程序 Buffer缓冲区的详解
Jul 06 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
Jun 29 Javascript
Vue多组件仓库开发与发布详解
Feb 28 Javascript
javascript贪吃蛇游戏设计与实现
Sep 17 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开启安全模式后禁用的函数集合
2011/06/26 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
JavaScript获取页面上某个元素的代码
2011/03/13 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
node实现简单的反向代理服务器
2017/07/26 Javascript
Element Input组件分析小结
2018/10/11 Javascript
Vue.js的动态组件模板的实现
2018/11/26 Javascript
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
python之pandas用法大全
2018/03/13 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
python ftplib模块使用代码实例
2019/12/31 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
如何用H5实现一个触屏版的轮播器的实例
2017/01/09 HTML / CSS
服装设计行业个人的自我评价
2013/12/20 职场文书
《小鹰学飞》教学反思
2014/04/23 职场文书
2014年实习期工作总结
2014/11/27 职场文书
八一建军节慰问信
2015/02/14 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
创业计划书之农家乐
2019/10/09 职场文书
教你怎么用Python操作MySql数据库
2021/05/31 Python