<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表格全選</title>
<style>
table{
border: 1px solid;
width: 500px;
margin-left: 30%;
}
td,th{
text-align: center;
border: 1px solid;
}
div{
margin-top: 10px;
margin-left: 30%;
}
.out{
background-color: white;
}
.over{
background-color: pink;
}
</style>
<script>
/*
分析:
1.全選:
* 獲取所有的checkbox
* 遍歷cb,設置每一個cb的狀態爲選中 checked
*/
//1.在頁面加載完後綁定事件
window.onload = function(){
//2.給全選按鈕綁定單擊事件
document.getElementById("selectAll").onclick = function(){
//全選
//1.獲取所有的checkbox
var cbs = document.getElementsByName("cb");
//2.遍歷
for (var i = 0; i < cbs.length; i++) {
//3.設置每一個cb的狀態爲選中 checked
cbs[i].checked = true;
}
}
document.getElementById("unSelectAll").onclick = function(){
//全不選
//1.獲取所有的checkbox
var cbs = document.getElementsByName("cb");
//2.遍歷
for (var i = 0; i < cbs.length; i++) {
//3.設置每一個cb的狀態爲未選中 checked
cbs[i].checked = false;
}
}
document.getElementById("selectRev").onclick = function(){
//反選
//1.獲取所有的checkbox
var cbs = document.getElementsByName("cb");
//2.遍歷
for (var i = 0; i < cbs.length; i++) {
//3.設置每一個cb的狀態爲相反
cbs[i].checked = !cbs[i].checked;
}
}
document.getElementById("firstCb").onclick = function(){
//第一個cb點擊
//1.獲取所有的checkbox
var cbs = document.getElementsByName("cb");
//獲取第一個cb
//2.遍歷
for (var i = 0; i < cbs.length; i++) {
//3.設置每一個cb的狀態和第一個cb的狀態一樣,this爲發生這個事件的事件源
cbs[i].checked = this.checked;
}
}
//給所有tr綁定鼠標移到元素之上和移出元素事件
var trs = document.getElementsByTagName("tr");
//2.遍歷
for (var i = 0; i < trs.length; i++) {
//移到元素之上
var tr1=trs[i];
tr1.onmouseover = function(){
//tr1.className = "over";不用this會導致鼠標出現在所有行上只有最後一行變色.離開所有行後最後一行顏色還原.
this.className = "over";
}
//移出元素
tr1.onmouseout = function(){
// tr1.className = "out";
this.className = "out";
}
}
}
</script>
</head>
<body>
<table>
<caption>江湖信息表</caption>
<tr>
<th><input type="checkbox" name="cb" id="firstCb"></th>
<th>編號</th>
<th>姓名</th>
<th>性別</th>
<th>操作</th>
</tr>
<tr>
<td><input type="checkbox" name="cb" ></td>
<td>1</td>
<td>令狐沖</td>
<td>男</td>
<td><a href="javascript:void(0);">刪除</a></td>
</tr>
<tr>
<td><input type="checkbox" name="cb" ></td>
<td>2</td>
<td>任我行</td>
<td>男</td>
<td><a href="javascript:void(0);">刪除</a></td>
</tr>
<tr>
<td><input type="checkbox" name="cb" ></td>
<td>3</td>
<td>嶽不羣</td>
<td>?</td>
<td><a href="javascript:void(0);">刪除</a></td>
</tr>
</table>
<div>
<input type="button" id="selectAll" value="全選">
<input type="button" id="unSelectAll" value="全不選">
<input type="button" id="selectRev" value="反選">
</div>
</body>
</html>
var tr1=trs[i];
tr1.onmouseover = function(){
//tr1.className = "over";不用this會導致鼠標出現在所有行上只有最後一行變色.離開所有行後最後一行顏色還原.
this.className = "over";
}
//移出元素
tr1.onmouseout = function(){
// tr1.className = "out";
this.className = "out";
}