whh168
2015-02-10 10:14
window.onload = function(){
var tr = document.getElementsByTagName("tr");
for (var i=0;i<tr.length; i++) {
bgChange(tr[i]);
}
}
// 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
function bgChange(a) {
a.onmouseover=function()
{
a.style.backgroundColor="#f2f2f2";
}
a.onmouseout=function()
{
a.style.backgroundColor="#fff";
}
}
你这样写就可以了
var tr = document.getElementsByTagName("tr");
for (var i=0;i<tr.length; i++) {
tr[i].onmouseover=function()
{
this.style.backgroundColor="#f2f2f2";
}
tr[i].onmouseout=function()
{
this.style.backgroundColor="#fff";
}
}
问题出在onmouseover=function(),这样写就相当于当onmouseover时,执行下function()里的代码,并不是给tr[i]的事件绑定方法
你试下直接在里面输出i,发现无论你移动到哪一条,i的值都不会变
window.onload = function(){
var tr = document.getElementsByTagName("tr");
for (var i=0;i<tr.length; i++) {
tr[i].onmouseover=function()
{
a.style.backgroundColor="#f2f2f2";
}
tr[i].onmouseout=function()
{
a.style.backgroundColor="#fff";
}
}
}
应该是可以的,你直接写没有效果,可能是你定错了,可以把你说的没有效果的代码发出来看看
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题
回答 2
回答 2