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 相关文章推荐
永不消失的title提示代码
Feb 15 Javascript
javascript 精粹笔记
May 09 Javascript
javascript省市级联功能实现方法实例详解
Oct 20 Javascript
前端设计师们最常用的JS代码汇总
Sep 25 Javascript
详解Vue使用命令行搭建单页面应用
May 24 Javascript
集成vue到jquery/bootstrap项目的方法
Feb 10 jQuery
微信小程序使用wxParse解析html的实现示例
Aug 30 Javascript
Vue+Express实现登录状态权限验证的示例代码
May 05 Javascript
ES6 Array常用扩展的应用实例分析
Jun 26 Javascript
javascript随机变色实例代码
Oct 15 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
Oct 29 Javascript
vue整合百度地图显示指定地点信息
Apr 06 Vue.js
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
PHP5 安装方法
2006/10/09 PHP
php 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
php的sso单点登录实现方法
2015/01/08 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
php写app接口并返回json数据的实例(分享)
2017/05/20 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
2017/03/28 jQuery
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
vue.js根据代码运行环境选择baseurl的方法
2018/02/28 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
python计算N天之后日期的方法
2015/03/31 Python
python中尾递归用法实例详解
2015/04/28 Python
Python二维码生成识别实例详解
2019/07/16 Python
Python库安装速度过慢解决方案
2020/07/14 Python
python实现简单的井字棋游戏(gui界面)
2021/01/22 Python
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
社会实践自我鉴定
2013/11/07 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书
开国大典观后感
2015/06/04 职场文书
百年校庆感言
2015/08/01 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书