使用JQuery做一组复选框的功能。
之前做过复选框的功能,奈何笔记丢失,害的我又鼓捣了一番。。。还是博客园做笔记比较好。
假设现在有一个表格,每一行都有一个复选框按钮。在表头还有一个全选的复选框按钮。
①、当点击一个全选按钮时,下面的同组的复选框都被选中,再点击时取消全选,下面同组的所有复选框都取消。
②、当下面的所有选项都被选中时上面的全选框自动变为选中状态。当下面有一个选项的处于未选中状态时,上面的全选按钮自动变为未选中状态。
下面是表格的代码
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<td><input type="checkbox" name="test1" id="quanxuan" />全选</td>
<td>姓名</td>
<td>省份</td>
</tr>
<tr>
<td><input type="checkbox" name="test1" id="yi" class="item" /></td>
<td>张三</td>
<td>福建</td>
</tr>
<tr>
<td><input type="checkbox" name="test1" id="er" class="item" /></td>
<td>李四</td>
<td>广东</td>
</tr>
<tr>
<td><input type="checkbox" name="test1" id="san" class="item" /></td>
<td>王五</td>
<td>江苏</td>
</tr> </table>
下面是代码形成的表格

一、实现点击全选按钮时,下面的选项全被选中,再次点击,取消全选时,下面的选项全部处于未选中状态。
<script type="text/javascript">
$(function(){
$("#quanxuan").click(function(){
var isCheck = $(this).prop("checked");
if(isCheck){
alert("全选");
var items = $(".item"); for(var i = 0; i < items.length; i++){
$(items[i]).attr("checked",true);
}
}else{
alert("取消全选"); var items = $(".item");
for(var i = 0; i < items.length; i++){
$(items[i]).attr("checked",false);
} }
});
})
</script>
在这个过程犯了一个低级错误。for循环里面的代码:
$(items[i]).attr("checked",false);//正确的
被我写成了
$(items[i].attr("checked",false));//错误的
搞了半天没发现错误。。。。。JavaScript真的很讨厌。写js代码总会有一股煞气堵在胸口的感觉。
二、现在添加功能:当下面的所有选项都被选中时上面的全选框自动变为选中状态。当下面有一个选项的处于未选中状态时,上面的全选按钮自动变为未选中状态。
下面是完整的js代码:
<script type="text/javascript">
$(function(){
$("#quanxuan").click(function(){
var isCheck = $(this).prop("checked");
if(isCheck){
var items = $(".item"); for(var i = 0; i < items.length; i++){
$(items[i]).attr("checked",true);
}
}else{ var items = $(".item");
for(var i = 0; i < items.length; i++){
$(items[i]).attr("checked",false);
} }
});
$(".item").click(function(){
//检查是不是所有的选项都被选中了,如果是,将全选按钮设置为选中状态。否则设为未选中状态。
var items = $(".item");
var flag = true;
for(var i = 0; i < items.length; i++){
var isChecked = $(items[i]).prop("checked");
if(!isChecked){
//将flag设为false,表示未全选。
flag = false;
}
}
if(flag){
$("#quanxuan").attr("checked", true);
}else{
$("#quanxuan").attr("checked", false);
}
});
})
</script>
使用JQuery做一组复选框的功能。的更多相关文章
- Jquery实现一组复选框单选
完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
- JS或jQuery实现一组复选框的全选和取消全选?
//1.JS方式实现:checkbox 全选/取消全选 var isCheckAll = false; function swapCheck() { if (isCheckAll) { ...
- JQuery Mobile - 修改复选框的选中状态无效解决办法!
今晚,在编写JQuery Mobile程序时候,需要在代码里面控制复选框的选中状态,很简单的代码啊,很快完成了!等测试程序时候傻眼了,页面无论如何也不按照我写的代码显示出来!问题出在哪里呢?是我写的控 ...
- jquery完成带复选框的表格行高亮显示
jquery完成带复选框的表格行高亮显示 通过jquery技术来操作表格是件简单的事,通过jquery的语法,可以很轻松的完成表格的隔行换色,悬浮高亮,在实际的应用中可能会出现表格中带复选框的,删除时 ...
- jquery点击复选框触发事件给input赋值
体验效果:http://keleyi.com/keleyi/phtml/jqtexiao/31.htm 代码如下: <!DOCTYPE html> <html xmlns=" ...
- jQuery选取所有复选框被选中的值并用Ajax异步提交数据
昨天和朋友做一个后台管理系统项目的时候涉及到复选框批量操作,如果用submit表单提交挺方便的,但是要实现用jQuery结合Ajax异步提交数据就有点麻烦了,因为我之前做过的项目中基本上没用Ajax来 ...
- Jquery表格变色 复选框全选,反选
/*jquery静态表格变色*/ $(".tr2").mouseover(function(){ $(this).css("background"," ...
- 【jQuery】对于复选框操作的attr与prop
这个是在jQuery1.6版本号之后出现的鬼东西.受影响的主要有下拉列表select与复选框checkbox.众所周知.在jQuery中能够用attr()取出节点的属性,然而对于checkbox却不是 ...
- jquery简单实现复选框的全选与反选
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- Eclipse/MyEclipse 选择Android NDK目录时提示“Not a valid NDK directory”
Eclipse或者MyEclipse 选择Android NDK目录时提示“Not a valid NDK directory” 在NDK目录中新建一个名称 ndk-build (没有扩展名)的空文件
- sqlite、mysql 将时间戳转换成本地时间语句
sqlite:SELECT datetime(createdTime, 'unixepoch', 'localtime'); mysql:SELECT FROM_UNIXTIME( 124948800 ...
- sublime text 3 3143注册码
1.点击help->enter license: —– BEGIN LICENSE —– TwitterInc 200 User License EA7E-890007 1D77F72E 390 ...
- MySQL 字段全部转换成小写
原因: 因为框架某些字段大写有时候不被正确识别,所以字段都修改成小写; 特别说明:因为这里只有表,没有视图,存储过程等等其它所以我可以直接这么写; 步骤: 1.导出结构语句 2. 执行C# 脚本,替换 ...
- 从 C#编写的Exe里面提取图标和图片
记得原来是可以通过PE直接提取Exe里面的图片的,不知道为什么不能用了,下面是通过加载程序集反射出Resources 里面的图片或者图标: 提取结果直接存放到编译目录了,不知道向左向右,自己又回到Wi ...
- Dell解决黑苹果网卡(BCM94352ZAE/DW1560)怎么都打不开WiFi
Dell解决黑苹果网卡(BCM94352ZAE/DW1560)怎么都打不开WiFi 2017年10月20日17:41:00 by SemiconductorKING 本来觉得驱动这个网卡不是个问题,以 ...
- Table Code
post.PostToTags.Where(t => tagArray.Contains(t.PostTag.Name, comparerWihtoutCases) && !t. ...
- Lucene学习之四:Lucene的索引文件格式(2)
本文转载自:http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623599.html 略有删减和补充 四.具体格式 上面曾经交代过,L ...
- Java基础(九)多线程
一.线程和进程 进程(Process): 1.是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础. 2.在早期面向进程设计的计算机结构中,进程是程 ...
- Linux下查看Tomcat的控制台输出信息
Linux下查看Tomcat的控制台输出信息 首先使用SSH连接到数据库,然后点击window创建一个new terminal, 进入tomcat/logs/文件夹下,输出控制台信息,命令如下: cd ...