[JavaScript] JS控制 checkbox的全选与反选 →→→→→进入此内容的聊天室

来自 , 2021-02-06, 写在 JavaScript, 查看 145 次.
URL http://www.code666.cn/view/dffa23e3
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>无标题文档</title>
  6. <style>
  7. *{margin:0px; padding:0px;}
  8. body{font:12px/1.5 宋体, Arial, Helvetica, sans-serif; color:#333;}
  9. input{vertical-align:middle; margin:0px 5px 3px 0px; *margin:0px 2px 3px 0px;}
  10. a{color:#39F; text-decoration:none;}
  11. a:hover{color:#F60;}
  12. table{border-collapse:collapse;}
  13. th,td{border:1px solid #EFEFEF; padding:8px 4px;}
  14. th{font-weight:normal; text-align:left;}
  15. </style>
  16. <script>
  17.         function checkList(obj){
  18.                 var oBox = typeof obj == "string" ? document.getElementById(obj) : obj;
  19.                 var aInput = oBox.getElementsByTagName("input");
  20.                 var aCheck = [];
  21.                 var i = checkedNum = 0;
  22.                 for(i=0;i<aInput.length;i++){
  23.                         if(aInput[i].getAttribute("type") == "checkbox"){
  24.                                 aCheck.push(aInput[i]);
  25.                         }
  26.                 }
  27.                 /*因为aInput为oBox中的所有input,万一表单中有其他type的input的话从aInput中获取type为checkbox的元素,不知js有没有比较方便的办法获取checkbox,求指教*/
  28.                 var oAll = getByClass(oBox,"all")[0];
  29.                 var oReverse = getByClass(oBox,"reverse")[0];
  30.                 for(i=0;i<aCheck.length;i++){
  31.                         aCheck[i].onclick = function(){
  32.                                 if(this == oAll){
  33.                                         for(i=0;i<aCheck.length;i++){
  34.                                                 aCheck[i].checked = this.checked;
  35.                                         }
  36.                                 }
  37.                                 else{
  38.                                         if(!this.checked){
  39.                                                 oAll.checked = false;
  40.                                         }
  41.                                         checkAll();
  42.                                 }
  43.                         }
  44.                 }
  45.                 oReverse.onclick = function(){
  46.                         for(i=0;i<aCheck.length;i++){
  47.                                 if(aCheck[i] != oAll){
  48.                                         aCheck[i].checked = !aCheck[i].checked;
  49.                                 }
  50.                         }
  51.                         checkAll();
  52.                 }
  53.                
  54.                 function getByClass(oParent,tClass){
  55.                         var tempObj = oParent.getElementsByTagName("*");
  56.                         var targObj = [];
  57.                         var filter = new RegExp("\\b" + tClass + "\\b");
  58.                         for(var i=0;i<tempObj.length;i++){
  59.                                 if(filter.test(tempObj[i].className)){
  60.                                         targObj.push(tempObj[i]);
  61.                                 }
  62.                         }
  63.                         return targObj;
  64.                 }
  65.                 function checkAll(){
  66.                         for(i=0;i<aCheck.length;i++){
  67.                                 if(aCheck[i].checked){
  68.                                         checkedNum++;
  69.                                 }
  70.                         }
  71.                         checkedNum == aCheck.length - 1 ? oAll.checked = true : oAll.checked = false;
  72.                         checkedNum = 0;
  73.                 }
  74.         }
  75. </script>
  76. </head>
  77.  
  78. <body>
  79.   <table cellpadding="0" cellspacing="0" border="0" width="100%" id="list">
  80.     <tr>
  81.       <th width="20%"><input class="all" type="checkbox"/>全选(<a class="reverse" href="javascript:void(0)">反选</a></th>
  82.       <th>item</th>
  83.     </tr>
  84.     <tr>
  85.       <td><input type="checkbox"/></td>
  86.       <td>item1</td>
  87.     </tr>
  88.     <tr>
  89.       <td><input type="checkbox"/></td>
  90.       <td>item2</td>
  91.     </tr>
  92.     <tr>
  93.       <td><input type="checkbox"/></td>
  94.       <td>item3</td>
  95.     </tr>
  96.     <tr>
  97.       <td><input type="checkbox"/></td>
  98.       <td>item4</td>
  99.     </tr>
  100.     <tr>
  101.       <td><input type="checkbox"/></td>
  102.       <td>item5</td>
  103.     </tr>
  104.   </table>
  105.   <script>
  106.   checkList("list");
  107.   </script>
  108. </body>
  109. </html>
  110. //javascript/5782

回复 "JS控制 checkbox的全选与反选"

这儿你可以回复上面这条便签

captcha