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 构建客户/服务分离的链接模型中Table中的排序分析
Jan 22 Javascript
js中将具有数字属性名的对象转换为数组
Mar 06 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
Jan 06 Javascript
window.location的重写及判断location是否被重写
Sep 04 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
Dec 04 Javascript
基于javascript制作经典传统的拼图游戏
Mar 22 Javascript
JavaScript String 对象常用方法总结
Apr 28 Javascript
jquery网页日历显示控件calendar3.1使用详解
Nov 24 Javascript
Vue中this.$router.push参数获取方法
Feb 27 Javascript
vue 实现的树形菜的实例代码
Mar 19 Javascript
理解JavaScript中的Proxy 与 Reflection API
Sep 21 Javascript
vue+swiper实现左右滑动的测试题功能
Oct 30 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中的一些数组排序方法分享
2012/07/20 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
如何获取网站icon有哪些可行的方法
2014/06/05 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
jquery+json实现动态商品内容展示的方法
2016/01/14 Javascript
JavaScript判断表单为空及获取焦点的方法
2016/02/12 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
2016/06/21 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
JS性能优化实现方法及优点进行
2020/08/30 Javascript
python网络编程学习笔记(六):Web客户端访问
2014/06/09 Python
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
党委班子对照检查材料
2014/08/19 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
工程项目合作意向书
2015/05/08 职场文书
导游词之阆中古城
2019/12/23 职场文书
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server