问答详情
源自:9-22 编程练习

鼠标移到不同行时背景色改变?

  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";


}    也没有效果,为什么?


提问者:strawIce 2016-08-12 18:04

个回答

  • 慕工程6722439
    2016-08-12 20:05:08

    好的,这位同学,我先回答你的第一个问题,为什么是this而不是trs[i],因为我们在做鼠标经过事件的时候,当鼠标移到一个对象上时就会触发该事件。this是指当前的,当鼠标移到当前对象时,它的样式就发生了改变。第二个问题,这是setAttribute(name,value)的语法。name是要设置的属性名,而你这onmouseover是一个事件,概念上是有区别的。

    望采纳。。。。