<!DOCTYPE html>
<html>
<head>
<title> new document </title>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<script type="text/javascript">
function changeBGCListener(tr) {
tr.addEventListener("mouseenter", function () {
tr.style.backgroundColor = "#f2f2f2";
});
tr.addEventListener("mouseout", function () {
tr.style.backgroundColor = "#fff";
});
}
// 修改背景色
function changeBGC(trs) {
Array.from(trs).forEach(tr => {
changeBGCListener(tr);
});
}
function deleteListener(a) {
a.addEventListener("click", function () {
var tr = a.parentElement.parentElement;
tr.parentElement.removeChild(tr);
});
}
function newCol() {
var td = document.createElement("td");
var txt = document.createTextNode("");
td.appendChild(txt);
return td;
}
window.onload = function () {
// 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
changeBGC(document.querySelectorAll("tr"));
addRow();
deleteRow(document.querySelectorAll("a"));
}
// 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;
function addRow() {
/*
<tr>
<td>No</td>
<td>Name</td>
<td><a href="javascript:;">删除</a></td>
<!--在删除按钮上添加点击事件 -->
</tr>
*/
document.querySelectorAll("input")[0].addEventListener("click", function () {
var a = document.createElement("a");
a.setAttribute("href", "javascript:;");
a.appendChild(document.createTextNode("删除"));
deleteListener(a);
var tr = document.createElement("tr");
tr.appendChild(newCol());
tr.appendChild(newCol());
var td = document.createElement("td");
td.appendChild(a);
tr.appendChild(td);
changeBGCListener(tr);
document.querySelector("table").appendChild(tr);
});
}
// 创建删除函数
function deleteRow(as) {
Array.from(as).forEach(a => {
deleteListener(a);
});
}
</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:;">删除</a></td>
<!--在删除按钮上添加点击事件 -->
</tr>
<tr>
<td>xh002</td>
<td>刘小芳</td>
<td><a href="javascript:;">删除</a></td>
<!--在删除按钮上添加点击事件 -->
</tr>
</table>
<input type="button" value="添加一行" />
<!--在添加按钮上添加点击事件 -->
</body>
</html>