window.onload = function(){
var x=document.getElementsByTagName("tr");
for(i=0;i<x.length;i++){
x[i].onmouseover=function(){
x[i].style.backgroundColor="#f2f2f2"
};
x[i].onmouseout=function(){
x[i].style.backgroundColor="#fff"
};
}
}
当我把函数块里的x[i]改成this就有效果了,为什么呢
i记录的是x.length这个只,越界了。需要做个壁报指向当前的i值才行,自己找下闭包的知识来看
window.onload = function () {
var x = document.getElementsByTagName("div");
for (i = 0; i < x.length; i++) {
(function (i) {
x[i].onmouseover = function () {
x[i].style.backgroundColor = "#f2f2f2"
};
x[i].onmouseout = function () {
x[i].style.backgroundColor = "#fff"
};
})(i)
}
}
因为参数i不能传到事件函数内 要等for循环结束后在执行事件函数