通过input就可以将一个简单的复选框呈现在页面上
<input type="checkbox" />要实现的大概就是这样一个页面
因为要得到复选框数组,而id又不能重复。所以通过name来得到复选框数组。得到数组后遍历,将所有checked值设置为true即可实现全选,全不选原理相同
同样的方法得到复选框数组,遍历的时候判断如果checked值为true则改为false,checked值为false则改为true
通过id获得最上面的复选框,判断其checked值若为true则将所有的复选框设置为true,为false则设置为false
注意
为什么不是true的时候设置为false呢?因为当点击的时候复选框已发生变化,这个时候,下面的复选框应该是与上面一致的
例子2
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <title>全选,反选按钮</title> 6 <script type="text/javascript"> 7 window.οnlοad=function(){ 8 /* 9 *1 #checkedAllBtn 10 * 2 #checkedBoBtn 11 * 3 #checkedRevBtn 12 * 4 #sendBtn 13 * 5 #checkedAllBox 14 * 6 #items 15 * */ 16 17 var checkedAllBtn = document.getElementById("checkedAllBtn"); 18 //checkedAllBox 19 var checkedAllBox = document.getElementById("checkedAllBox"); 20 21 checkedAllBtn.onclick = function(){ 22 23 //获取四个多选框items 24 var items = document.getElementsByName('items'); 25 26 //遍历items 27 for(var i=0;i<items.length;i++) 28 { 29 //设置四个多选框变成选中状态 30 //通过多选框的checked属性可获取或设置选中状态 31 items[i].checked = true; 32 33 } 34 35 //将checkedAllBox设置为选中状态 36 checkedAllBox.checked = true; 37 38 39 }; 40 41 //全不选按钮 42 var checkedNoBtn = document.getElementById("checkedNoBtn"); 43 44 checkedNoBtn.onclick = function(){ 45 //获取四个多选框items 46 var items = document.getElementsByName('items'); 47 48 //遍历items 49 for(var i=0;i<items.length;i++) 50 { 51 //设置四个多选框变成选中状态 52 //通过多选框的checked属性可获取或设置选中状态 53 items[i].checked = false; 54 55 } 56 57 //将checkedAllBox设置为选中状态 58 checkedAllBox.checked = false; 59 60 }; 61 62 //反选 也要判断是否都需要全部选中 63 var checkedRevBtn = document.getElementById("checkedRevBtn"); 64 65 checkedRevBtn.onclick = function(){ 66 //获取四个多选框items 67 var items = document.getElementsByName('items'); 68 69 checkedAllBox.checked = true; 70 71 //遍历items 72 for(var i=0;i<items.length;i++) 73 { 74 //设置四个多选框变成选中状态 75 //通过多选框的checked属性可获取或设置选中状态 76 items[i].checked = !items[i].checked; 77 78 79 if(!items[i].checked){ 80 //一旦进入判断,则证明不是全选状态 81 //将checkedAllBox设置为没选中状态 82 checkedAllBox.checked = false; 83 84 } 85 86 } 87 88 }; 89 90 //提交按钮 91 var sendBtn = document.getElementById("sendBtn"); 92 sendBtn.onclick = function(){ 93 var items = document.getElementsByName('items'); 94 //遍历 items 95 for(var i=0; i<items.length;i++) 96 { 97 //判断多选框是否选中 98 if(items[i].checked){ 99 alert(items[i].value); 100 } 101 } 102 }; 103 104 105 checkedAllBox.onclick = function(){ 106 var items = document.getElementsByName('items'); 107 108 //遍历items 109 for(var i=0;i<items.length;i++) 110 { 111 //设置四个多选框变成选中状态 112 items[i].checked = this.checked; 113 114 } 115 116 117 118 119 120 }; 121 122 //items 123 124 //如果四个多选框全都选中,则checkedAllBox也应该选中 125 //如果四个多选框都没选中,则checkedAllBox也应该没选中 126 var items = document.getElementsByName('items'); 127 //为四个多选框分别绑定点击响应函数 128 for(var i=0 ; i<items.length ; i++){ 129 items[i].onclick = function(){ 130 131 //将checkedAllBox设置为选中状态 132 checkedAllBox.checked = true; 133 134 for(var j=0 ; j<items.length ; j++){ 135 //判断四个多选框是否全选 136 //只要有一个没选中则就不是全选 137 if(!items[j].checked){ 138 //一旦进入判断,则证明不是全选状态 139 //将checkedAllBox设置为没选中状态 140 checkedAllBox.checked = false; 141 //一旦进入判断,则已经得出结果,不用再继续执行循环 142 break; 143 } 144 145 } 146 147 148 149 }; 150 } 151 152 153 } 154 155 </script> 156 </head> 157 <body> 158 159 <form method="post" action=""> 160 你爱好的运动是?<input type="checkbox" id="checkedAllBox" />全选/全不选 161 162 <br /> 163 <input type="checkbox" name="items" value="足球" />足球 164 <input type="checkbox" name="items" value="篮球" />篮球 165 <input type="checkbox" name="items" value="羽毛球" />羽毛球 166 <input type="checkbox" name="items" value="乒乓球" />乒乓球 167 <br /> 168 <input type="button" id="checkedAllBtn" value="全 选" /> 169 <input type="button" id="checkedNoBtn" value="全不选" /> 170 <input type="button" id="checkedRevBtn" value="反 选" /> 171 <input type="button" id="sendBtn" value="提 交" /> 172 </form> 173 </body> 174 </html>
转载于:https://www.cnblogs.com/yuer20180726/p/11152408.html
相关资源:全选反选