1. 程式人生 > >案例:全選和全不選

案例:全選和全不選

<!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 ckAll=document.getElementById("j_cbAll");
var cklist=document.getElementById("j_tb").getElementsByTagName("input");
ckAll.onclick=function () {
  for(var i=0;i<cklist.length;i++){
   cklist[i].checked=ckAll.checked;
  }
};
for(var j=0;j<cklist.length;j++){
  cklist[j].onclick=function () {
    for(var k=0;k<cklist.length;k++){
      var flag=0;
      if(!cklist[k].checked){
        flag=1;
        break;
      }

    }
    if(flag==1){
      ckAll.checked=false;
    }
    else{
      ckAll.checked=true;
    }
  };
}







//  //獲取全選的這個複選框
//  var ckAll = my$("j_cbAll");
//  //獲取tbody中所有的小複選框
//  var cks = my$("j_tb").getElementsByTagName("input");
//  //點選全選的這個複選框,獲取他當前的狀態,然後設定tbody中所有複選框的狀態
//  ckAll.onclick = function () {
//    //console.log(this.checked);
//    for (var i = 0; i < cks.length; i++) {
//      cks[i].checked = this.checked;
//    }
//  };
//
//  //獲取tbody中所有的複選框,分別註冊點選事件
//  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;
//        }
//      }
//      //全選的這個複選框的狀態就是flag這個變數的值
//      ckAll.checked=flag;
//    };
//  }

</script>
</body>
</html>