林鸿伯3985306
2016-10-29 22:25
window.onload = function(){
trlist=document.getElementsByTagName("tr");
for(var i=0;i<trlist.length;i++){
trlist[i].onmouseover=bgcChange(trlist[i]);
trlist[i].onmouseout=function(){this.style.backgroundColor="#fff"}
}
}
function bgcChange(a){
a.style.backgroundColor="red";
}
如果直接这么写:
trlist[i].onmouseover=bgcChange(trlist[i]);
这里bgcChange是一个自执行函数,而并不是事件函数,因此一加载页面就会执行;
但也不能这么写:
trlist[i].onmouseover=function(){ bgcChange(trlist[i]); //改成:bgcChange(this); }
这么也i值为定数(i为trlist.length),因此要写成你的mouseout事件的格式,用this.
方便把全部代码贴出来吗
this就是代表trlist[i],然后this.style.backgroundColor=“red”就是直接给他们每一个都设置了颜色!
function bgcChange(a){
a.style.backgroundColor="red";
}
这个函数和
trlist[i].onmouseout=function(){this.style.backgroundColor="#fff"}只要一个就好了
你用了两种方法设置了颜色
因为window.onload意思就是页面一加载就运行!bgcChange(trlist[i]);调用了函数 function bgcChange(a)所以为红色
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题