问题可能很低端。。
// 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
var trs = document.getElementsByTagName("tr");
for(var i = 0;i < trs.length;i++){
function changeColor(trs[i]){
trs[i].onmouseover = function(){
trs[i].style.backgroundColor = 'grey';
}
trs[i].onmouseout = function(){
trs[i].style.backgroundColor = 'white';
}
}
}

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
其实只是你写错了代码而已:
正解如楼上,谁让你在循环内定义函数的……
function changeColor(trs[i]){}放到for外面,参数trs[i]换一下,for里面用changeColor(trs[i]);或许可以吧。
刚试了一下,for里可以定义函数,你的问题是"function changeColor(trs[i]){}",定义函数参数时你用了一个“trs[i]”,这样是不行的。
var trs = document.getElementsByTagName("tr");
你没有让里面的函数执行,
(function (data) {})(data);这样让函数自执行。要么就在外边写上你想定义的函数,然后在里面引用也可以。建议你这种事情,完全可以用css实现,用js实现太大材小用了
for(var i = 0;i < trs.length;i++){ ===》 for(var i = 0,len=trs.length;i < len;i++){