需求:制作一個表格,顯示班級的學生信息。
要求:
- 鼠標移到不同行上時背景色改為色值為 #f2f2f2,移開鼠標時則恢復為原背景色 #fff
- 點擊添加按鈕,能動態(tài)在最后添加一行
- 點擊刪除按鈕,則刪除當前行
任務
第一步: 首先,我們創(chuàng)建刪除函數(shù),并在刪除按鈕上添加點擊事件;
提示: 使用removeChild()。
第二步: 編寫一個函數(shù),供添加按鈕調用,動態(tài)在表格的最后一行添加子節(jié)點;
提示: 使用createElement()、innerHTML、appendChild()。
第三步: 更改鼠標移動改變背景則可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。
提示: - 獲取表格的行,getElementsByTagName 。
- 使用for進行循環(huán),為每行添加事件及背景顏色設置。
<!DOCTYPE html>
<html>
<head>
<title> new document </title>
<meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
<script type="text/javascript">
window.onload = function(){
// 鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。
var tab = document.getElementById("table");
var trs =tab.getElementsByTagName("tr");
for(var i=0;i<trs.length;i++){
trs[i].onmouseover=function(){
this.style.backgroundColor ="#f2f2f2";
}
trs[i].onmouseout= function(){
this.style.backgroundColor = "#fff";
}
}
}
// 編寫一個函數(shù),供添加按鈕調用,動態(tài)在表格的最后一行添加子節(jié)點;
function addOne(){
var tbody = document.getElementById('table');
var tr = document.createElement('tr');
var td = document.createElement("td");
td.innerHTML = "<input type='text'/>";
tr.appendChild(td);
td = document.createElement("td");
td.innerHTML = "<input type='text'/>";
tr.appendChild(td);
td = document.createElement("td");
td.innerHTML = "<a href='javascript:;' onclick='removeRow(this)'>刪除</a>";
tr.appendChild(td);
tbody.appendChild(tr);
}
// 創(chuàng)建刪除函數(shù)
function removeRow(obj){
var tbody = document.getElementById('table');
var tr = obj.parentNode.parentNode;
tbody.removeChild(tr);
}
</script>
</head>
<body>
<table border="1" width="50%" id="table">
<tr>
<th>學號</th>
<th>姓名</th>
<th>操作</th>
</tr>
<tr>
<td>xh001</td>
<td>王小明</td>
<td><a href="javascript:;" onclick="removeRow(this)" >刪除</a></td> <!--在刪除按鈕上添加點擊事件 -->
</tr>
<tr>
<td>xh002</td>
<td>劉小芳</td>
<td><a href="javascript:;" >刪除</a></td> <!--在刪除按鈕上添加點擊事件 -->
</tr>
</table>
<input type="button" value="添加一行" onclick="addOne()" /> <!--在添加按鈕上添加點擊事件 -->
</body>
</html>