之前做过复选框的功能,奈何笔记丢失,害的我又鼓捣了一番。。。还是博客园做笔记比较好。

假设现在有一个表格,每一行都有一个复选框按钮。在表头还有一个全选的复选框按钮。

①、当点击一个全选按钮时,下面的同组的复选框都被选中,再点击时取消全选,下面同组的所有复选框都取消。

②、当下面的所有选项都被选中时上面的全选框自动变为选中状态。当下面有一个选项的处于未选中状态时,上面的全选按钮自动变为未选中状态。

下面是表格的代码

<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做一组复选框的功能。的更多相关文章

  1. Jquery实现一组复选框单选

    完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  2. JS或jQuery实现一组复选框的全选和取消全选?

    //1.JS方式实现:checkbox 全选/取消全选  var isCheckAll = false;  function swapCheck() {    if (isCheckAll) {    ...

  3. JQuery Mobile - 修改复选框的选中状态无效解决办法!

    今晚,在编写JQuery Mobile程序时候,需要在代码里面控制复选框的选中状态,很简单的代码啊,很快完成了!等测试程序时候傻眼了,页面无论如何也不按照我写的代码显示出来!问题出在哪里呢?是我写的控 ...

  4. jquery完成带复选框的表格行高亮显示

    jquery完成带复选框的表格行高亮显示 通过jquery技术来操作表格是件简单的事,通过jquery的语法,可以很轻松的完成表格的隔行换色,悬浮高亮,在实际的应用中可能会出现表格中带复选框的,删除时 ...

  5. jquery点击复选框触发事件给input赋值

    体验效果:http://keleyi.com/keleyi/phtml/jqtexiao/31.htm 代码如下: <!DOCTYPE html> <html xmlns=" ...

  6. jQuery选取所有复选框被选中的值并用Ajax异步提交数据

    昨天和朋友做一个后台管理系统项目的时候涉及到复选框批量操作,如果用submit表单提交挺方便的,但是要实现用jQuery结合Ajax异步提交数据就有点麻烦了,因为我之前做过的项目中基本上没用Ajax来 ...

  7. Jquery表格变色 复选框全选,反选

    /*jquery静态表格变色*/ $(".tr2").mouseover(function(){ $(this).css("background"," ...

  8. 【jQuery】对于复选框操作的attr与prop

    这个是在jQuery1.6版本号之后出现的鬼东西.受影响的主要有下拉列表select与复选框checkbox.众所周知.在jQuery中能够用attr()取出节点的属性,然而对于checkbox却不是 ...

  9. jquery简单实现复选框的全选与反选

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

随机推荐

  1. SQL Developer 改成英文

  2. Azure SQL Federation(联合)

    说Federation(联合)之前,先说下,表的垂直分割 和 水平分割----------------------------------------------------------------- ...

  3. 移动端手势事件 hammer.JS插件

                      一.引入hammer.JS 1.下载地址:http://download.csdn.net/detail/webxiaoma/9872249 2.官网地址:http ...

  4. 02.ToString()方法详解

    ToString()使用方法汇总(C#) C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 ...

  5. Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

    Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...

  6. 流畅的python和cookbook学习笔记(九)

    1.减少可调用对象的参数个数,使用functools.partial冻结参数 使用functools.partial(),可以固定一个或者多个值,减少调用参数. >>> def sp ...

  7. bash的常用功能呢

    一.tab键可以自动补齐命令 二.命令历史 1.history 查看之前敲过的所有命令 2.!历史命令编号 调用历史的某一个命令 三.命令别名 1.设置别名    alias 别名=‘命令’ 2.移除 ...

  8. easyui前后台转义字符和普通字符的相互转换问题

    昨天碰到一个问题,公司前端使用的是easyui和jquery,页面textarea编写了html代码,传入后台变成了<>类型代码,这样保存到数据库是没有问题的,但是在页面显示的时候需要显示 ...

  9. C Primer Plus note9

    undefined reference to `WinMain@16'| 运行程式的时候出现了这样的错误,而且编译器也没有提示是哪一行出错: 经过百度搜索,发现了问题所在: 上面的图中main()函数 ...

  10. 给tomcat7w.exe改名字

    在平常使用tomcat的过程中,经常会在自己的电脑上安装两个tomcat,而且使用tomcat的tomcat7w.exe界面比较方便,即 但是两个tomcat的名字一样,也只能启动一个tomcat. ...