为了账号安全,请及时绑定邮箱和手机立即绑定

在这个编程作业里设置鼠标移动改变背景色可否用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来设置这个鼠标移动效果的话,有什么好方法可以让新添加的行也有这个效果呢?

正在回答

3 回答

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

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

这样写就可以了

0 回复 有任何疑惑可以回复我~

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

2 回复 有任何疑惑可以回复我~
#1

月半虫下 提问者

emmm就是不会、不清楚所以才提问嘛。谢谢你的回答,如果语气能好一些就更好啦
2018-04-20 回复 有任何疑惑可以回复我~
#2

阳火锅 回复 月半虫下 提问者

我学这个就是被骂出来的..语气不好让你记忆深刻...我也算是自学..
2018-04-23 回复 有任何疑惑可以回复我~
#3

月半虫下 提问者 回复 阳火锅

哈哈好的,感谢良苦用心
2018-04-23 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

月半虫下 提问者

但是这个编程任务是需要设置鼠标移动事件的。我用setAttribute设置onclick事件是可以的呀
2018-04-20 回复 有任何疑惑可以回复我~
#2

阿宅娘 回复 月半虫下 提问者

setAttribute用来设置onclick与style等方法属性,貌似会有兼容问题,可改成 可改成: for(var i=0;i<lines.length;i++){ lines[i].onmouseover=function(){color1(this);}; lines[i].onmouseout=function(){color2(this);} }
2018-04-20 回复 有任何疑惑可以回复我~
#3

月半虫下 提问者 回复 阿宅娘

嗯嗯,我改成这样写了。谢谢呀!
2018-04-20 回复 有任何疑惑可以回复我~
#4

精慕门1546425 回复 阿宅娘

这里为什么用function(){color1(this);}; 而不是直接color1(this);
2018-05-14 回复 有任何疑惑可以回复我~
#5

阿宅娘 回复 精慕门1546425

https://www.imooc.com/qadetail/125821这里有解释
2018-05-15 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信