@{
  Layout = null;
}

<!DOCTYPE html>

<html>
<head>
  <meta name="viewport" content="width=device-width" />
  <title>CheckBoxSelect</title>
</head>
<body>
  <div>
    <table>
      <tr style="text-align:center">
        <td colspan="10">全选:<input type="checkbox" name="SelectAll" id="cb_select_all" style="width:50px;height:50px" /></td>
      </tr>
      <tr>
        <td>1:<input type="checkbox" name="cbCheckBox" style="width:50px;height:50px" id="cb_1" onclick="SingleSelect('1')" /></td>
        <td>2:<input type="checkbox" name="cbCheckBox" style="width:50px;height:50px" id="cb_2" onclick="SingleSelect('2')" /></td>
        <td>3:<input type="checkbox" name="cbCheckBox" style="width:50px;height:50px" id="cb_3" onclick="SingleSelect('3')" /></td>
        <td>4:<input type="checkbox" name="cbCheckBox" style="width:50px;height:50px" id="cb_4" onclick="SingleSelect('4')" /></td>
        <td>5:<input type="checkbox" name="cbCheckBox" style="width:50px;height:50px" id="cb_5" onclick="SingleSelect('5')" /></td>
        <td>6:<input type="checkbox" name="cbCheckBox" style="width:50px;height:50px" id="cb_6" onclick="SingleSelect('6')" /></td>
        <td>7:<input type="checkbox" name="cbCheckBox" style="width:50px;height:50px" id="cb_7" onclick="SingleSelect('7')" /></td>
        <td>8:<input type="checkbox" name="cbCheckBox" style="width:50px;height:50px" id="cb_8" onclick="SingleSelect('8')" /></td>
        <td>9:<input type="checkbox" name="cbCheckBox" style="width:50px;height:50px" id="cb_9" onclick="SingleSelect('9')" /></td>
        <td>10:<input type="checkbox" name="cbCheckBox" style="width:50px;height:50px" id="cb_10" onclick="SingleSelect('10')" /></td>
      </tr>
    </table>
  </div>
</body>
</html>
<script src="~/Scripts/jquery-2.1.1.min.js"></script>
<script>
  $(function () {
    $('#cb_select_all').click(function () {
      if ($('input[name="SelectAll"]').is(':checked')) {
        $('input[name="cbCheckBox"]').prop('checked', true);//全选
      }
      else {
        $('input[name="cbCheckBox"]').prop('checked', false);//取消全选
      }
     });
    });
  //点击单个复选框时,全选的复选框要发生相应的变化
  function SingleSelect(id) {
    if ($('#cb_' + id).is(':checked') == false) {
      $('#cb_select_all').prop('checked', false);//如果全部选中的子复选框有一个没选中了,则将全选复选框的状态变为未选中
    }
    else {
      var checkboxLength = $('input[name="cbCheckBox"]').length;//全部子复选框的个数
      var checkedBoxLength = $('input[name="cbCheckBox"]:checked').length;//子复选框选中的个数
      if (checkboxLength == checkedBoxLength) {
        //点击多个子复选框,当选中的复选框个数等于所有子复选框的个数,则要将全选复选框的转态变为选中
        $('#cb_select_all').prop('checked', true);
       }
    }
/*-------------注意-------------*/
/*
做这个时,一开始死活弄不出来,各种不满意,弄好久了,经过多方排查和找资料,终于解决了问题,总结了下,问题出现在两点:
1、传入的参数id要这种形式:$('#cb_' + id),我一开始传入的参数是这个CheckBox的id,然后是:$(id).is(':checked'),
  看上去没错,但实际是该判断永远返回false,浪费了不少时间
2、问题出现在这里:$('#cb_select_all').attr('checked', false);但结果是该checkbox的状态始终是false,不管怎么弄都不行,
  我记得以前是可以这样的,不知道是不是因为新版jQuery的原因.后面百度看到有用prop这个属性,我就试了一下,完美解决问题!
  这段代码比我以前写的简洁多了(感悟的废话倒是多了点,哈哈),以后看下能不能提炼出更简洁的,若有人能写出更简洁的,希望不吝赐教啊!
*/
/*-------------获取选中值-------------*/

  //$('input[name="cbCheckBox"]:checked').each(function(){
    // var checkedVal=$(this).val();
  //});
  }
</script>

代码截图:

效果截图:

全选:

全不选:

当为全选状态时,若有单个不选,全选复选框也要变为未选中状态:

当一个个选中子复选框,直至把全部都选中时,全选的复选框也要变为选中状态:

jquery对复选框(checkbox)的操作(精华)的更多相关文章

  1. Jquery对复选框CheckBox的操作

    checkbox: 多选框 //获取选中值  checkbox:$("#checkbox_id").attr("value"): 多选框checkbox,打勾: ...

  2. jquery判断复选框checkbox是否被选中

    jquery判断复选框checkbox是否被选中 使用is方法 //如果选中返回true //如果未选中返回false .is(':checked');

  3. jQuery判断复选框checkbox的选中状态

    通过jQuery设置复选框为选中状态 复选框 <input type="checkbox"/> 错误代码: $("input").attr(&quo ...

  4. jquery获取复选框checkbox的值

    jQuery API : each(callback) :以每一个匹配的元素作为上下文来执行一个函数. :checked :匹配所有选中的被选中元素(复选框.单选框等,不包括select中的optio ...

  5. 不同版本的jquery的复选框checkbox的相关问题

    在尝试写复选框时候遇到一个问题,调试了很久都没调试出来,极其郁闷: IE10,Chrome,FF中,对于选中状态,第一次$('#checkbox').attr('checked',true)可以实现 ...

  6. [jQuery] 判断复选框checkbox是否选中checked

    返回值是true/false method 1: $("#register").click(function(){ if($("#accept").get(0) ...

  7. jQuery操作复选框checkbox技巧总结 ---- 设置选中、取消选中、获取被选中的值、判断是否选中等

    转载:https://blog.csdn.net/chenchunlin526/article/details/77448168 jQuery操作复选框checkbox技巧总结 --- 设置选中.取消 ...

  8. jquery操作复选框(checkbox)十二技巧

    jquery操作复选框(checkbox)的12个小技巧. 1.获取单个checkbox选中项(三种写法)$("input:checkbox:checked").val()或者$( ...

  9. Jquery操作复选框(CheckBox)的取值赋值实现代码

    赋值 复选框 CheckBox 遍历 取值  1. 获取单个checkbox选中项(三种写法): $("input:checkbox:checked").val() 或者 $(&q ...

随机推荐

  1. android手机测试中如何查看内存泄露

    (一) 生成.hprof文件生成.hprof 文件的方法有很多,而且Android 的不同版本中生成.hprof 的方式也稍有差别,我使用的版本的是2.1,各个版本中生成.prof 文件的方法请参考: ...

  2. 通过端口映射连接不同网段的oracle

    oracle在内网,只有特殊机器能访问,通过做端口映射,可以以这个特殊机器作为“跳板”完成本机对远程oracle的连接. “跳板”机器是windows,需要在该机器上执行netsh命令: netsh ...

  3. GLSL版本的区别和对比

    之前尝试将一个GLSL version 110的版本写成GLSL version 330的,在此将学习过程和收获记录下来. 参考链接 GLSL Versions 介绍 你可以使用#version命令作 ...

  4. 磁盘 I/O 优化

    磁盘 I/O 优化 1. 性能检测 我们的应用程序通常都需要访问磁盘系统,而磁盘 I/O 通常都很耗时, 要判断 I/O 是否是一个瓶颈,有一些参数指标可以参考. 我们可以压力测试应用程序看系统的 I ...

  5. Python学习笔记(二)

    标识符和关键字 1,邮箱的Python标识符是任意长度的非空字符序列(引导字符+后续字符.) python标识符必须符合两条规则--标识符区分大小写 (1)只要是unicode编码字母都可以充当引导字 ...

  6. mysql导出长数字到excel避免显示为科学记数法 解决方法

    经常遇到MYSQL导出长数字或纯数字字符串(如身份证.卡券号.条码.流水号等)到csv或excel文件,用excel打开会显示为科学记数法,甚至后几位转为0.这是由Excel的特性决定的:Excel显 ...

  7. Serv-u 备份处理

    需求分析 从删库到跑路,大家听过很多,但如果没删备份的话,那只能说玩的不够彻底,不专业.系统管理员一个非常重要的职责就是定期备份,以便在系统出现故障的时候能够及时恢复.我们来看下如何备份Serv-u系 ...

  8. Excel反序排列

    实际工作中有这样一个需求,将Excel列表中所有的条目进行反序排列,有人说这还不简单直接选中某一列按照这列排序(升序或降序)就可以了. 但问题是这里没有可以参考的列,进行排序. 比如: 想转换为: 那 ...

  9. 【CF471E】MUH and Lots and Lots of Segments 扫描线+并查集+线段树+set

    [CF471E]MUH and Lots and Lots of Segments 题意:给你平面上n条水平或竖直的,端点在整点处的线段.你需要去掉一些线段的一些部分,使得剩下的图形:1.连通,2.无 ...

  10. Butterknife 导入项目配置

    在app的 build.gradle 文件中添加 dependencies { // Butterknifeapi 'com.jakewharton:butterknife:8.6.0'annotat ...