• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

关于背景变色为什么第一种方法不行?

//这是第一种方法,效果只是最后一行变色,并且鼠标不是移入最后一行而是前几行也只是最后一行变色                var trs = document.getElementsByTagName("tr");                 for(var i=1;i

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与3

第一种方法,直接循环里使用onmouseover和onmouseout里面的ntr是一个定值;
这是一个异步加载过程,即浏览器在加载完毕时for循环已经结束,当触发鼠标移入移出事件时,i就是个定值,所以ntr也是个定值;
第二种方法,用了参数来保存当浏览器加载时for循环时候的i的值,即每一个i值都被保存下来并作为参数传给函数;
浏览器加载完毕后,for循环里面的值其实如下:
onevents(trs[0]);//i为0时onevents(trs[1]);//i为1时//...onevents(trs[trs.length-1])//i为trs.length-1时//每一个i都作为参数传递出去因此触发的时候每一行变色

使用道具 举报

学习了

使用道具 举报

上面的人都讲的挺好,但是不够透彻。要理解这个你要理解
es5以及之前的js都没有块级作用域。
所以浏览器加载完后,不管你如何操作,i都是 trs.length的值。如果使用let,就不会出现这个问题。

使用道具 举报

发新帖

发布任务需求已有1031290位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!