很多網站頁面上面經常可以看到,在每一條記錄的前面會有一個一個選擇框,下面這個例子實現了一鍵完成全選,一鍵完成反選,一鍵完成取消。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.hide{
display: none;
}
.c1{
position:fixed;
left: 0;
top:0;
right:0;
bottom:0;
background-color:black;
opacity:0.6;
z-index:9;
}
.c2{
width:500px;
height:400px;
background-color:white;
position: fixed;
left: 50%;
top:50%;
margin-left:-250px;
margin-top:-200px;
z-index:10;
}
</style>
</head>
<body style="margin: 0;">
<div>
<input type="button" value="添加" οnclick="show();"/>
<input type="button" value="全選" οnclick="chooseAll();"/>
<input type="button" value="取消" οnclick="cancelAll();"/>
<input type="button" value="反選" οnclick="reverseAll();"/>
<table>
<thread>
<tr>
<th>選擇</th>
<th>主機名</th>
<th>端口</th>
</tr>
</thread>
<tbody id='tb'>
<tr>
<td><input type="checkbox" /></td>
<td>1.1.1.1</td>
<td>90</td>
</tr>
<tr>
<td><input type="checkbox" /></td>
<td>1.1.1.2</td>
<td>91</td>
</tr>
<tr>
<td><input type="checkbox" /></td>
<td>1.1.1.3</td>
<td>92</td>
</tr>
</tbody>
</table>
</div>
<!--遮罩層開始-->
<div id='i1' class='c1 hide'></div>
<!--遮罩層結束-->
<!--彈出框開始-->
<div id='i2' class="c2 hide">
<p><input type="text" /></p>
<p><input type="text" /></p>
<p>
<input type="button" value="cancel" οnclick="hide();"/>
<input type="button" value="sure"/>
</p>
</div>
<!--彈出框結束-->
<script>
function show(){
document.getElementById('i1').classList.remove('hide');
document.getElementById('i2').classList.remove('hide');
}
function hide(){
document.getElementById('i1').classList.add('hide');
document.getElementById('i2').classList.add('hide');
}
function chooseAll(){
var tbody = document.getElementById('tb');
//獲取所有的tr
var tr_list = tbody.children;
//循環所有的tr
for(var i=0; i<tr_list.length; i++){
var current_tr = tr_list[i];
var checkbox = current_tr.children[0].children[0];
checkbox.checked = true;
}
}
function cancelAll(){
var tbody = document.getElementById('tb');
//獲取所有的tr
var tr_list = tbody.children;
//循環所有的tr
for(var i=0; i<tr_list.length; i++){
var current_tr = tr_list[i];
var checkbox = current_tr.children[0].children[0];
checkbox.checked = false;
}
}
function reverseAll(){
var tbody = document.getElementById('tb');
//獲取所有的tr
var tr_list = tbody.children;
//循環所有的tr
for(var i=0; i<tr_list.length; i++){
var current_tr = tr_list[i];
var checkbox = current_tr.children[0].children[0];
if(checkbox.checked){
checkbox.checked = false;
}else{
checkbox.checked = true;
}
}
}
</script>
</body>
</html>