<!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 tr = document.getElementsByTagName("tr");
for(var i=0; i<tr.length; i++)
{
bgChange(tr[i]);
}
}
function bgChange(obj){
obj.onmouseover=function(){
obj.style.backgroundColor=" #f2f2f2";
}
obj.onmouseout=function(){
obj.style.backgroundColor="#fff";
}
}
function Add(){
var no = prompt("请输入学号:", "");
var name = prompt("请输入姓名:","");
if(no!=null&&name!=null&&no!=""&&name!="")
{
var tr = document.createElement("tr");
var td1 = document.createElement("td");
var td2 = document.createElement("td");
var del = document.createElement("td");
var newno = document.createTextNode(no);
var newname = document.createTextNode(name);
td1.appendChild(newno);
td2.appendChild(newname);
del.innerHTML="<a href='javascript:;' onclick='del(this)' >删除</a>";
var table = document.getElementById("table");
table.appendChild(tr);
table.appendChild(td1);
table.appendChild(td2);
table.appendChild(del);
window.onload = function(){
var add_tr = document.getElementsByTagName("tr");
for(var i=0; i<add_tr.length; i++)
{
bgChange(add_tr[i]);
}
}
}
else{
alert("姓名和学号不能为空,请重新输入!");
Add();
}
}
function del(obj){
var tr = obj.parentNode.parentNode;
tr.parentNode.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="del(this)" >删除</a></td> <!--在删除按钮上添加点击事件 -->
</tr>
<tr>
<td>xh002</td>
<td>刘小芳</td>
<td><a href="javascript:;" onclick="del(this)" >删除</a></td> <!--在删除按钮上添加点击事件 -->
</tr>
</table>
<input type="button" value="添加一行" onclick="Add()" /> <!--在添加按钮上添加点击事件 -->
</body>
</html>
你应该在add()方法中调用bgChange(),新增加的才会有鼠标经过的事件。
var tr = obj.parentNode.parentNode;
这个就是找到tr这个元素节点赋值给tr
tr.parentNode.removeChild(tr);
tr的父节点就是table,removeChild(tr)就是在父节点下把tr整个节点删除
tr.parentNode.removeChild(tr);
因为删除的是tr的父节点的整个子节点