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

在这个编程作业里设置鼠标移动改变背景色可否用setAttribute

window.onload = function(){
                  
     // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
      function color1(obj){
          obj.style.backgroundColor = "#f2f2f2";
      }  
      function color2(obj){
	  obj.style.backgroundColor = "#fff";
      }	
      var lines = document.getElementsByTagName("tr");
      for(var i=0;i<lines.length;i++){
          lines[i].setAttribute("onmouseover","color1(this)");
          lines[i].setAttribute("onmouseout","color2(this)");                    
      }
	 
}

我这么写的,但是运行后没有效果。想问问是否能这么使用?还是我哪里写错了?

我发现很多同学代码中没有考虑对新添加的行增加这个改动背景色的效果。请问如果不能用setAttribute来设置这个鼠标移动效果的话,有什么好方法可以让新添加的行也有这个效果呢?

提问者:月半虫下 2018-04-20 15:48

个回答

  • qq_yearning_1
    2018-06-04 14:09:17

    newnode.setAttribute("onmouseover","style.backgroundColor='#f2f2f2'");

    newnode.setAttribute("onmouseout","style.backgroundColor='#fff'");

    这样写就可以了

  • 阳火锅
    2018-04-20 18:06:07

    我就想请问你一下onmouseover与onmouseout是一个元素的属性吗?它们只是一个触发事件。。setAttribute()这个函数能改变事件??  你先搞清楚再提问OK?

  • 阿宅娘
    2018-04-20 16:18:32

    setAttribute是设置属性的,直接设置颜色lines[i].setAttribute("style","background-color:red");