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 相关文章推荐
动态修改DOM 里面的 id 属性的弊端分析
Sep 03 Javascript
JS中==与===操作符的比较
Mar 21 Javascript
jquery下json数组的操作实现代码
Aug 09 Javascript
点击表单提交时出现jQuery没有权限的解决方法
Jul 23 Javascript
jQuery分组选择器用法实例
Dec 23 Javascript
JavaScript 常见安全漏洞和自动化检测技术
Aug 21 Javascript
jquery实用技巧之输入框提示语句
Jul 28 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
Dec 27 Javascript
详解vue-router 路由元信息
Sep 13 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
Mar 21 Javascript
微信小程序框架的页面布局代码
Aug 17 Javascript
超简单的微信小程序轮播图
Nov 22 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往windows中添加用户
2006/12/06 PHP
PHP 文件类型判断代码
2009/03/13 PHP
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
PHP CURL 内存泄露问题解决方法
2015/02/12 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
js调用flash的效果代码
2008/04/26 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
js选择器全面解析
2016/06/27 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
javascript 判断一个对象为数组的方法
2017/05/03 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
python反转列表的三种方式解析
2019/11/08 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
应届生求职简历的自我评价怎么写
2013/10/23 职场文书
前台文员岗位职责及工作流程
2013/11/19 职场文书
美术毕业生求职信
2014/02/25 职场文书
物业管理专业自荐信
2014/07/01 职场文书
学校政风行风自查自纠报告
2014/10/21 职场文书
土地租赁协议书
2015/01/29 职场文书
九华山导游词
2015/02/03 职场文书
保护动物的宣传语
2015/07/13 职场文书
《梅花魂》教学反思
2016/02/18 职场文书
python状态机transitions库详解
2021/06/02 Python