beblueblue
2016-09-13 17:39
<!DOCTYPE html>
<html>
<head>
<title> new document </title>
<meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
<script type="text/javascript">
'use strict';
window.onload = function(){
// 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
HighLight();
}
// 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;
function addLine(obj){
var table = document.getElementById("table");
var newTr = document.createElement("tr");
var newTd = document.createElement("td");
newTd.innerHTML="<input type='text' style='width:40px'/>";
newTr.appendChild(newTd);
newTd = document.createElement("td");
newTd.innerHTML="<input type='text' style='width:40px'/>";
newTr.appendChild(newTd);
newTd = document.createElement("td");
newTd.innerHTML="<a href='javascript:;' onclick='deleteLine(this)'>删除</a>";
newTr.appendChild(newTd);
table.appendChild(newTr);
HighLight();
}
// 创建删除函数
function deleteLine(obj){
var table = document.getElementById("table");
var deleteTr = obj.parentNode.parentNode;
table.removeChild(deleteTr);
}
// 背景色函数
function HighLight(){
var lightTr = document.getElementsByTagName("tr");
for (var i =0;i<lightTr.length;i++){
lightTr[i].onmouseover = function(){
this.style.backgroundColor="#f2f2f2";
}
lightTr[i].onmouseout = function(){
this.style.backgroundColor="#fff";
}
}
}
</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='deleteLine(this)'>删除</a>//这个“onclick”不起作用
</td> <!--在删除按钮上添加点击事件 -->
</tr>
<tr>
<td>xh002</td>
<td>刘小芳</td>
<td>
<a href='javascript:;' onclick='deleteLine(this)'>删除</a>//这个“onclick”不起作用
</td> <!--在删除按钮上添加点击事件 -->
</tr>
</table>
<input type="button" value="添加一行" onclick="addLine()"/> <!--在添加按钮上添加点击事件 -->
</body>
</html>
查看浏览器控制台可知:如果不显式指定表格行的位置,浏览器渲染表格时默认会把表格行放在tbody中,即tr的父元素不是table而是tbody。所以删除行的语句可改为:deleteTr.parentNode.removeChild(deleteTr)
var table = document.getElementById("table"); 改成var table = document.getElementById("table").lastChild;即是tbody
JavaScript进阶篇
468062 学习 · 21891 问题
相似问题