昨天早上有写到怎么利用Jquery实现全选

根据大家的意见对程序中一些写法不好的地方进行了修改,也是本人水平有限,存在各种考虑不到的地方。

文章最后我提出了一个问题,要写一个通用的方法来调用,于是就有了现在的这篇文章,晚上回到家,我就写出了效果

下面的例子可以供大家讨论学习,如果觉得不错也可以直接应用到项目中。

1:为什么要写这个方法

网上实现一句话全选全不选的有很多,但是好像都忽略了一个问题,全选的checkbox可以控制下面的子checkbox,但是下面的子checkbox应该也可以控制上面的全选,这样就有了我的这个方法。

2:开发过程:要实现通用就要解决2个问题,怎么分组,怎么判断组里面哪个checkbox为全选,我想了想,觉得用name分组可以,

用class来判断是否是需要全选的checkbox组。先找到所有class为需要全选的,再找出name属性,根据name属性就可以找到其他的子checkbox,只要找到元素就可以进行操作了

3:下载地址:实现checkbox全选方法.zip

4:文件,下面是我实现的js,保存为xs_checkbox_all.js

//****************************************************************************************
//作者:轻狂书生
//博客地址:http://www.cnblogs.com/xiaoshuai1992
//create: 2014/1/15
//功能:实现checkbox的智能全选
//使用方法:引用jquery,设置要全选的checkbox 组name一样,全选的checkbox设置class为下面变量xsChk
//***************************************************************************************** $(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)[].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" />
<br />
<input type="checkbox" name="chk" />
<br />
<input type="checkbox" name="chk" />
<br />
<input type="checkbox" name="chk" />
<br />
</div>
</fieldset>
<fieldset>
<legend>全选two</legend>
<input type="checkbox" class="xsChk" name="chk1" />
全選2
<div>
<input type="checkbox" name="chk1" />
<br />
<input type="checkbox" name="chk1" />
<br />
<input type="checkbox" name="chk1" />
<br />
<input type="checkbox" name="chk1" />
<br />
</div>
</fieldset>
</body>
</html>

可以达到效果,如果有什么优化的地方,请大家提出,我会做的更好,谢谢大家了

最新文章

  1. Server.MapPath查询路径那几件事
  2. NYOJ 47-过河问题
  3. 有关OpenCV1.0中GUI命令的几个函数学习总结
  4. mysql学习笔记6——用phpmyadmin和在腾讯微云中创建数据库
  5. CSU 1337(费马大定理)
  6. 红帽(Red Hat Linux)下SVN服务器的安装与配置
  7. java设计模式--结构型模式--外观模式
  8. java操作mongodb——连接数据库
  9. hdu 5137(2014广州—最短路)
  10. 随机采样和随机模拟:吉布斯采样Gibbs Sampling
  11. Dynamic CRM 2015学习笔记(6)没有足够的权限 - 您没有访问这些记录的权限。请联系 Microsoft Dynamics CRM 管理员
  12. iOS开发 -------- AFNetworking实现简单的断点下载
  13. GDI+_Png图片浏览器
  14. mysqli_query数据库有数据,查不出来
  15. ASP.NET MVC Form表单验证与Authorize特性
  16. 记一次SpringMVC碰到的坑
  17. 基于skip-gram做推荐系统的想法
  18. CentOS 6 网络设置
  19. 『TensorFlow』DCGAN生成动漫人物头像_下
  20. bzoj1086

热门文章

  1. 《Cracking the Coding Interview》——第4章:树和图——题目7
  2. jmeter之录制控制器与代理的使用
  3. SQLite3中dos命令下退出&quot;...&gt;&quot;状态的方法
  4. Fomo3D代码分析以及漏洞攻击演示
  5. 第二阶段团队冲刺-two
  6. 软工实践Alpha冲刺(4/10)
  7. Access连接字符串
  8. 【距离GDOI:128天】【POJ2778】DNA Sequence(AC自动机+矩阵加速)
  9. Linux系统—— core 文件
  10. (转)myeclipse工程 junit不能运行 ClassNotFoundException