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

来源:9-22 编程练习

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


}    也没有效果,为什么?


写回答 关注

1回答

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

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

    望采纳。。。。

    strawI... 回复lukaM

    好的,谢谢

    2016-08-16 18:53:10

    共 3 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

467393 学习 · 21877 问题

查看课程

相似问题