1. 程式人生 > >用JavaScript實現CheckBox的全選取消反選,及遮罩層中添加內容

用JavaScript實現CheckBox的全選取消反選,及遮罩層中添加內容

document 當前 CI itl HA posit size classlist ML

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Title</title>
  6     <style>
  7         .c1 {
  8             position: fixed;
  9             top: 0;
 10             right: 0;
 11             left: 0;
 12             bottom: 0
; 13 background-color: black; 14 opacity: 0.5; 15 z-index: 9; 16 } 17 18 .c2 { 19 width: 500px; 20 height: 400px; 21 background-color: white; 22 position: fixed; 23 left: 50%; 24 top: 50
%; 25 margin-left: -250px; 26 margin-top: -200px; 27 z-index: 10; 28 } 29 30 .c3 { 31 display: none; 32 } 33 34 </style> 35 </head> 36 <body style="margin: 0 auto"> 37 38 <div> 39 40 <input type
="button" value="添加" onclick="add()"> 41 <input type="button" value="全選" onclick="ChooseAll()"> 42 <input type="button" value="取消" onclick="CancleAll()"> 43 <input type="button" value="反選" onclick="ReverseAll()"> 44 <table> 45 <thead> 46 <tr> 47 <th>請選擇</th> 48 <th>主機名</th> 49 <th>端口</th> 50 </tr> 51 </thead> 52 <tbody id="tb"> 53 <!--給tbody設置ID用來找到它,然後循環它的孩子--> 54 <tr> 55 <td><input type="checkbox"></td> 56 <td>192.168.99.1</td> 57 <td>3389</td> 58 </tr> 59 60 <tr> 61 <td><input type="checkbox"></td> 62 <td>192.168.99.2</td> 63 <td>3306</td> 64 </tr> 65 66 <tr> 67 <td><input type="checkbox"></td> 68 <td>192.168.99.3</td> 69 <td>8080</td> 70 </tr> 71 </tbody> 72 </table> 73 </div> 74 <!-- 遮罩層開始--> 75 <div id="i1" class="c1 c3"> 76 77 78 </div> 79 <!-- 遮罩層結束--> 80 81 <!-- 彈出框開始--> 82 83 <div id="i2" class="c2 c3"> 84 <p> 85 <input name="ip" type="text"> 86 <input name="duankou" type="text"> 87 </p> 88 <p> 89 <input type="button" value="確定" onclick="go()"> 90 <input type="button" value="取消" onclick="goback()"> 91 </p> 92 </div> 93 <!-- 彈出框開始--> 94 95 <script> 96 function add() { 97 document.getElementById(i1).classList.remove(c3) 98 document.getElementById(i2).classList.remove(c3) 99 } 100 101 function goback() { 102 document.getElementById(i1).classList.add(c3) 103 document.getElementById(i2).classList.add(c3) 104 } 105 106 function go() { 107 var v1 = document.getElementById(i2).valueOf(ip).alert(v1) 108 } 109 110 //全選 111 function ChooseAll() { 112 var tbody = document.getElementById(tb)//根據ID找到tbody 113 var tr_list = tbody.children //獲取子標簽,並生成列表 114 for (i = 0; i < tr_list.length; i++) { //循環tr_list得到每一個tr 115 var current_tr = tr_list[i]; //拿到拿到每個td的子標簽,也就是裏面的所有的tr生成一個列表 116 var checkbox = current_tr.children[0].children[0];//得到第一個tr裏的第一個子標簽也就是CheckBox了 117 checkbox.checked = true; //checkbox.checked是獲取當前CheckBox的值是true還是false 118 // 當然此時肯定是false,我們只需要讓他等於true就可以修改他的當前狀態為打上對勾的了 119 } 120 } 121 122 //取消 123 function CancleAll() { 124 var tbody = document.getElementById(tb)//根據ID找到tbody 125 var tr_list = tbody.children //獲取子標簽,並生成列表 126 for (i = 0; i < tr_list.length; i++) { //循環tr_list得到每一個tr 127 var current_tr = tr_list[i]; //拿到拿到每個td的子標簽,也就是裏面的所有的tr生成一個列表 128 var checkbox = current_tr.children[0].children[0];//得到第一個tr裏的第一個子標簽也就是CheckBox了 129 checkbox.checked = false; //checkbox.checked是獲取當前CheckBox的值是true還是false 130 // 當然此時肯定是false,我們只需要讓他等於false就可以修改他的當前狀態為去掉對勾了 131 } 132 133 } 134 135 //反選 136 function ReverseAll() { 137 var tbody = document.getElementById(tb)//根據ID找到tbody 138 var tr_list = tbody.children //獲取子標簽,並生成列表 139 for (i = 0; i < tr_list.length; i++) { //循環tr_list得到每一個tr 140 var current_tr = tr_list[i]; //拿到拿到每個td的子標簽,也就是裏面的所有的tr生成一個列表 141 var checkbox = current_tr.children[0].children[0];//得到第一個tr裏的第一個子標簽也就是CheckBox了 142 var type = checkbox.checked; //checkbox.checked是獲取當前CheckBox的值是true還是false 143 if (type == true) { //然後對當前狀態進行判斷 ;如果是true就將他改成false 144 // 如果是false就將他改成true;即可將他反選 145 checkbox.checked = false; 146 } 147 else { 148 checkbox.checked = true; 149 } 150 } 151 } 152 153 154 </script> 155 156 </body> 157 </html>

知識點:

<input type=‘checkbox‘>

checkbox.checked獲取當前CheckBox的當前值

document.getElementById()根據ID找到標簽
標簽.children 找到子標簽並生成列表
for (i = 0; i < 標簽標簽.length; i++) 循環標簽列表 得到每一個子標簽

效果如下圖
技術分享圖片

用JavaScript實現CheckBox的全選取消反選,及遮罩層中添加內容