原生JS实现全选和不全选

  • 案例演示

原生JS实现全选和不全选

 

  • 源代码
原生JS实现全选和不全选
<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <style>
    * {
      padding: 0;
      margin: 0;
    }

    .wrap {
      width: 300px;
      margin: 100px auto 0;
    }

    table {
      border-collapse: collapse;
      border-spacing: 0;
      border: 1px solid #c0c0c0;
      width: 300px;
    }

    th,
    td {
      border: 1px solid #d0d0d0;
      color: #404060;
      padding: 10px;
    }

    th {
      background-color: #09c;
      font: bold 16px "微软雅黑";
      color: #fff;
    }

    td {
      font: 14px "微软雅黑";
    }

    tbody tr {
      background-color: #f0f0f0;
    }

    tbody tr:hover {
      cursor: pointer;
      background-color: #fafafa;
    }
  </style>
</head>
<body>
<div class="wrap">
  <table>
    <thead>
    <tr>
      <th>
        <input type="checkbox" id="j_cbAll"/>
      </th>
      <th>菜名</th>
      <th>饭店</th>
    </tr>
    </thead>
    <tbody id="j_tb">
    <tr>
      <td>
        <input type="checkbox"/>
      </td>
      <td>红烧肉</td>
      <td>田老师</td>
    </tr>
    <tr>
      <td>
        <input type="checkbox"/>
      </td>
      <td>西红柿鸡蛋</td>
      <td>田老师</td>
    </tr>
    <tr>
      <td>
        <input type="checkbox"/>
      </td>
      <td>鱼香肉丝</td>
      <td>田老师</td>
    </tr>
    <tr>
      <td>
        <input type="checkbox"/>
      </td>
      <td>小葱拌豆腐</td>
      <td>田老师</td>
    </tr>

    </tbody>
  </table>
</div>
<script src="common.js"></script>
<script>

 var cksAll=my$("j_cbAll");
  var cks = my$("j_tb").getElementsByTagName("input");
  cksAll.onclick=function() {
    for (var i = 0; i < cks.length; i++) {
      cks[i].checked=this.checked;

    }
  };

  for(var i=0;i<cks.length;i++){
    cks[i].onclick=function(){
     var flag=true;
     for(var j=0;j<cks.length;j++){
      if(!cks[j].checked){
        flag=false;
        break;
      }
     }
     cksAll.checked=flag;
    };
  }

</script>
</body>
</html>
全选和不全选.js

 

  • 具体实现 
  • 思想方法

                         //全选:点击全选按钮,其他的小按钮都选中,说明小按钮的状态是跟着全选按钮而变化的

                        //不全选:小按钮有一个没选择,全选不选中

  •        核心代码
     
    //获取全选按钮
    var cksAll=my$("j_cbAll");
    //获取其他小按钮 var cks = my$("j_tb").getElementsByTagName("input");
    //实现点击全选按钮,小按钮的状态跟着全选按钮变化 cksAll.onclick=function() { for (var i = 0; i < cks.length; i++) { cks[i].checked=this.checked; } };
    //遍历每一个小按钮 for(var i=0;i<cks.length;i++){
    //为每一个按钮注册点击事件 cks[i].onclick=function(){
    //开始默认全都选中 var flag=true; for(var j=0;j<cks.length;j++){
    //循环过程中如果有一个小按钮没被选中,就将flag=false,并且此时不需要继续遍历了 if(!cks[j].checked){ flag=false; break; } }
    //全选按钮状态和flag相同 cksAll.checked=flag; }; }

     

上一篇:CKS-MAT30远程程序上下载 支持欧姆龙西门子等PLC 远程下载、监控


下一篇:Codeforces 1250J The Parade