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

单独写了一个变色的程序,为什么不能实现变色?哪里写错了么?

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript">
      window.onload = function() {
        var ass = document.getElementsByTagName("tr");
        for (var i = 0; i < ass.length; i++) {
          ass[i].onmouseover = function() {
            ass[i].style.backgroundColor = "#f2f2f2";
          };
          ass[i].onmouseout = function() {
            ass[i].style.backgroundColor = "#fff";
          };
        }
      };
    </script>
  </head>
  <body>
    <table>
      <tr>
        <th>xuesheng</th>
        <th>xingming</th>
        <th>shanchu</th>
      </tr>
      <tr>
        <td>111</td>
        <td>222</td>
        <td>shanchu</td>
      </tr>
      <tr>
        <td>333</td>
        <td>444</td>
        <td>hanchu</td>
      </tr>
    </table>
  </body>
</html>
检查了好几遍,不知道为什么不能变色。


正在回答

2 回答

http://img1.sycdn.imooc.com//5dc373f90001221205210226.jpg把我圈出来的改成this

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

xuiang

为啥子可以呢?想知道
2019-11-07 回复 有任何疑惑可以回复我~

这边只能跟你说明下原因,你这段代码所绑定的触发时间是在鼠标滑到\移开元素上时触发,当时你的for循环却不需要,所以在你点击执行的一瞬间.for循环已经遍历完了3遍,此时i==3(你可以在js代码最后一句输出一下,).等你再滑到\移开元素时,函数去读取i的值为3,因为ass没有下标为3的,所以会报错..建议你把代码复制到编辑器上,在通过浏览器查看执行结果,可以看到报错,.

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

举报

0/150
提交
取消

单独写了一个变色的程序,为什么不能实现变色?哪里写错了么?

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