这里实现背景变色的,就是这样写的话会提示Cannot read property 'style' of undefined,为什么?
<!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(){
// 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
rh = document.getElementsByTagName("tr");
//alert(rh.length);
for(var i=0;i<rh.length;i++){
//colorchange(rh[i]);
rh[i].onmouseover=function(){
rh[i].style.backgroundColor="#f2f2f2";
}
rh[i].onmouseout=function(){
rh[i].style.backgroundColor="#fff";
}
}
}
//这个函数调用实现的功能正常
function colorchange(obj){
obj.onmouseover=function(){
obj.style.backgroundColor="#f2f2f2";
}
obj.onmouseout=function(){
obj.style.backgroundColor="#fff";
}
}
// 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;
function addrow(){
var table=document.getElementById("table");
var row=document.createElement("tr");
var col1=document.createElement("td");
var col2=document.createElement("td");
var col3=document.createElement("td");
col3.innerHTML="<a href=\"javascript:;\"onclick=\"delrow(this)\" >删除</a>";
row.appendChild(col1);
row.appendChild(col2);
row.appendChild(col3);
table.appendChild(row);
}
// 创建删除函数
function delrow(obj){
todel=obj.parentNode.parentNode;
//document.getElementById("table").removeChild(todel);
//这里在删除前两个节点的时候居然提示table不是他们的父节点
todel.parentNode.removeChild(todel);
}
</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="delrow(this)" >删除</a></td> <!--在删除按钮上添加点击事件 -->
</tr>
<tr>
<td>xh002</td>
<td>刘小芳</td>
<td><a href="javascript:;"onclick="delrow(this)" >删除</a></td> <!--在删除按钮上添加点击事件 -->
</tr>
</table>
<input type="button" value="添加一行" onclick="addrow()" /> <!--在添加按钮上添加点击事件 -->
</body>
</html>