var a=document.getElementsByTagName("tr");
for(var i=0;i<a.length;i++){
bgChg(a[i]);
}
function bgChg(b){
b.onmouseover=function (){
b.style.backgroundColor="#f2f2f2";
}
b.onmouseout=function(){
b.style.backgroundColor="#fff";
}
}
}
// 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;
function add(){
var table=document.getElementById("table");
var tr=document.createElement("tr");
var td1=document.createElement("td");
var td2=document.createElement("td");
var td3=document.createElement("td");
var xh=prompt("学号");
var xm=prompt("姓名");
td1.innerHTML=xh;
td2.innerHTML=xm;
td3.innerHTML="<a href='javascript:delete(this);' >删除</a>";
tr.appendChild(td1);
tr.appendChild(td2);
tr.appendChild(td3);
table.lastChild.appendChild(tr);
bgChg(table.lastChild.appendChild(tr));
}
同学, 经测试你的代码, 你说的那个画线的地方, 是能够成功运行的. 新添加的行, 自动就附带上了切换背景颜色的功能.
推测你说的意思, 是原本初始就存在的那两行, 反而没有变色的效果?? 因为没有看到完整代码. 不知道你把JS代码写在哪里. 写在头部的话, 一个tr也获取不到, 所以不会变色. 把JS代码写在文件的底部, 就可以实现了.
小问题是:function bgChg(b)这个函数结束后, 多了一个后括号. 只要把这个后括号去掉, 同时把JS代码移到底部, 就没有问题.