Jquery实现checkbox全选方法
2023-06-13 09:15:42 时间
昨天早上有写到怎么利用Jquery实现全选
根据大家的意见对程序中一些写法不好的地方进行了修改,也是本人水平有限,存在各种考虑不到的地方。
文章最后我提出了一个问题,要写一个通用的方法来调用,于是就有了现在的这篇文章,晚上回到家,我就写出了效果
下面的例子可以供大家讨论学习,如果觉得不错也可以直接应用到项目中。
1:为什么要写这个方法
网上实现一句话全选全不选的有很多,但是好像都忽略了一个问题,全选的checkbox可以控制下面的子checkbox,但是下面的子checkbox应该也可以控制上面的全选,这样就有了我的这个方法。
2:开发过程:要实现通用就要解决2个问题,怎么分组,怎么判断组里面哪个checkbox为全选,我想了想,觉得用name分组可以,
用class来判断是否是需要全选的checkbox组。先找到所有class为需要全选的,再找出name属性,根据name属性就可以找到其他的子checkbox,只要找到元素就可以进行操作了
3:文件,下面是我实现的js,保存为xs_checkbox_all.js
$(document).ready(function(){
varxsChk="xsChk";//定义的样式
varxsChkAll="input[type="checkbox"][class=""+xsChk+""][name]";//所有定义此样式的checkbox
$(xsChkAll).each(function(){
varname=$(this).attr("name");
name="input[type="checkbox"][class!=""+xsChk+""][name=""+name+""]";//此全选框下面的子checkbox
$(this).click(function(){
$(name).attr("checked",$(this)[0].checked);
})
varxschk=$(this);
$(name).click(function(){
varIAll=$(name).length;//此子项目下所有checkbox的个数
varIChk=$(name+":checked").length;//此子项目下所有勾选checkbox的个数
varisAllChecked=true;//是否是全选
if(IAll!=IChk){
isAllChecked=false;
}
$(xschk).attr("checked",isAllChecked);
});
});
});
页面使用
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<scriptsrc="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"type="text/javascript">
</script>
<scriptsrc="xs_checkbox_all.js"type="text/javascript"></script>
<fieldset>
<legend>全选one</legend>
<inputtype="checkbox"class="xsChk"name="chk"/>
全选
<div>
<inputtype="checkbox"name="chk"/>
1<br/>
<inputtype="checkbox"name="chk"/>
2<br/>
<inputtype="checkbox"name="chk"/>
3<br/>
<inputtype="checkbox"name="chk"/>
4<br/>
</div>
</fieldset>
<fieldset>
<legend>全选two</legend>
<inputtype="checkbox"class="xsChk"name="chk1"/>
全选2
<div>
<inputtype="checkbox"name="chk1"/>
11<br/>
<inputtype="checkbox"name="chk1"/>
22<br/>
<inputtype="checkbox"name="chk1"/>
33<br/>
<inputtype="checkbox"name="chk1"/>
44<br/>
</div>
</fieldset>
</body>
</html>
可以达到效果,如果有什么优化的地方,请大家提出,我会做的更好,谢谢大家了,以上就是本文的全部内容了,希望大家能够喜欢。
相关文章
- jquery实现向服务器下载文件的方法_从服务器下载文件命令
- Jquery 验证 validate详解编程语言
- JQuery绑定事件时传递参数的实现方法
- 用jQuery简化Ajax开发实现方法
- jquery下onpropertychange事件的绑定方法
- JQuery中html()方法使用不当带来的陷阱
- jQuery常见操作实现方式和常用函数方法总结
- 菜鸟蔡之Ajax复习第二篇(JQuery中的load()方法实现Ajax功能)
- jQuery-serialize()输出序列化form表单值的方法
- jquery的冒泡事件的阻止与允许(三种实现方法)
- jQuery去掉字符串起始和结尾的空格(多种方法实现)
- asp.net中js和jquery调用ashx的不同方法分享
- jquery必须知道的一些常用特效方法及使用示例(整理)
- jQuery让控件左右移动的三种实现方法
- 为jQuery添加Webkit的触摸的方法分享
- 按Enter键触发事件的jquery方法实现代码
- jquery日历控件实现方法分享
- 原生js获取宽高与jquery获取宽高的方法关系对比
- 解决自定义$(id)的方法与jquery选择器$冲突的问题
- JQuery使用attr方法实现下拉列表选中
- jQuery实现表单提交时判断的方法
- 修改或扩展jQuery原生方法的代码实例
- jquery单选框radio绑定click事件实现方法
- jQuery实现跟随鼠标运动图层效果的方法
- jquery取子节点及当前节点属性值的方法