要求
添加一個學生信息表格,表格的信息有編號、姓名、性別、信息勾選4個字段,可以任意的勾選其中0行或以上信息行。
主要步驟分析
- 創建一個學生信息表格
- 定義三個按鈕:全選、全不選、反選
- 給添加按鈕綁定點擊事件
步驟實現
-
創建一個表格
<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="selectReverse" value="反選"> </div>
-
用CSS樣式,對table、div進行修飾
table { /* 為表格添加邊框(盒子模型) */ border: 1px solid; /* 表格寬度為500個像素點 */ width: 500px; /* 設置與table元素相關聯的盒子模型的左外邊距 */ margin-left: 30%; } td,th{ /* 為表格的每個單元格添加邊框(盒子模型) */ border: 1px solid; /* 將每個單元格的文本信息向中對齊 */ text-align: center; } div { /* 設置與div元素相關聯的盒子模型的左外邊距 */ margin-left: 30%; /* 設置div元素的頂部外邊距 */ margin-top: 10px; }
-
用JavaScript代碼:給全選按鈕綁定鼠標單擊事件
document.getElementById("selectAll").onclick = function() { // 通過標簽name值,獲取table標簽中所有的checkbox對象 var checkBoxObject = document.getElementsByName("cb"); // 遍歷 for (var i = 0; i < checkBoxObject.length; i++) { // 設置每一個checkbox的狀態為選中 checked checkBoxObject[i].checked = true; } };
-
用JavaScript代碼:給全不選按鈕綁定鼠標單擊事件
document.getElementById("unSelectAll").onclick = function() { // 通過標簽name值,獲取table標簽中所有的checkbox對象 var checkBoxObject = document.getElementsByName("cb"); // 遍歷 for (var i = 0; i < checkBoxObject.length; i++) { // 設置每一個checkbox的狀態為選中 checked checkBoxObject[i].checked = false; } };
-
用JavaScript代碼:為表頭勾選按鈕綁定鼠標單擊事件
document.getElementById("firstCb").onclick = function() { // 獲取所有的checkbox var checkBoxObject = document.getElementsByName("cb"); // 遍歷 for (var i = 0; i < checkBoxObject.length; i++) { // 設置每一個cb的狀態和第一個cb的狀態一樣 checkBoxObject[i].checked = this.checked; } };
-
用JavaScript代碼:給所有tr綁定鼠標移到元素之上和移出元素事件
var trs = document.getElementsByTagName("tr"); // 遍歷 for (var i = 0; i < trs.length; i++) { // 移到元素之上 trs[i].onmouseover = function(){ this.className = "over"; }; // 移出元素 trs[i].onmouseout = function(){ this.className = "out"; }; }
用CSS樣式,對該事件進行描述
.out{ background-color: white; } .over{ background-color: pink; }
具體實現代碼如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表格信息勾選</title>
<style>
table {
border: 1px solid;
width: 500px;
margin-left: 30%;
}
td,th{
border: 1px solid;
text-align: center;
}
div {
margin-left: 30%;
margin-top: 10px;
}
.out{
background-color: white;
}
.over{
background-color: pink;
}
</style>
<script>
window.onload = function () {
document.getElementById("selectAll").onclick = function() {
var checkBoxObject = document.getElementsByName("cb");
for (var i = 0; i < checkBoxObject.length; i++) {
checkBoxObject[i].checked = true;
}
};
document.getElementById("unSelectAll").onclick = function() {
var checkBoxObject = document.getElementsByName("cb");
for (var i = 0; i < checkBoxObject.length; i++) {
checkBoxObject[i].checked = false;
}
};
document.getElementById("selectReverse").onclick = function() {
var checkBoxObject = document.getElementsByName("cb");
for (var i = 0; i < checkBoxObject.length; i++) {
checkBoxObject[i].checked = !checkBoxObject[i].checked;
}
};
document.getElementById("firstCb").onclick = function() {
var checkBoxObject = document.getElementsByName("cb");
for (var i = 0; i < checkBoxObject.length; i++) {
checkBoxObject[i].checked = this.checked;
}
};
var trs = document.getElementsByTagName("tr");
for (var i = 0; i < trs.length; i++) {
trs[i].onmouseover = function(){
this.className = "over";
};
trs[i].onmouseout = function(){
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="selectReverse" value="反選">
</div>
</body>
</html>