strawIce
2016-08-12 18:04
var trs = document.getElementsByTagName("tr");
for(var i=1;i<trs.length;i++){
trs[i].onmouseover=function(){this.style.backgroundColor="#f2f2f2";};
trs[i].onmouseout=function(){this.style.backgroundColor="#fff";};
}
上面的正常的代码,问:
1 如果将this.style....改为trs[i].style...为什么就没有效果了?
2 如果改成trs[i].setAttribute("onmouseover","changeColor()");
function changeColor(){
this.style.backgroundColor="#f2f2f2";
} 也没有效果,为什么?
好的,这位同学,我先回答你的第一个问题,为什么是this而不是trs[i],因为我们在做鼠标经过事件的时候,当鼠标移到一个对象上时就会触发该事件。this是指当前的,当鼠标移到当前对象时,它的样式就发生了改变。第二个问题,这是setAttribute(name,value)的语法。name是要设置的属性名,而你这onmouseover是一个事件,概念上是有区别的。
望采纳。。。。
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题