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

为什么这个有时候用不了?

为什么这个有时候用不了?

飞天意大利面神兽 2016-07-08 13:55:16
        window.onload = function () {          var lis=document.getElementsByTagName('li');          //alert(lis.length);          for(var i=0;i<lis.length;i++){          lis[i].onmouseover=function(){          alert(this.getElementsByTagName('div')[0]);          }          }         }如上代码,比如第六行“this.getElementsByTagName('div')[0]”,换成了li[i].getElementsByTagName('div')[0],就会出错:li is not defined。那么另外问一下,究竟是什么时候用this?非常感谢!
查看完整描述

1 回答

已采纳
?
刚毅87

TA贡献345条经验 获得超309个赞

鼠标移入事件是在 for 循环走完之后才执行的,所以此时 i= lis.length, 很明显 li[lis.length]不存在;

所以此时得记录 i 的值,用 index.

 window.onload = function () {
            var lis=document.getElementsByTagName('li');
            //alert(lis.length);
            for(var i=0;i<lis.length;i++){
                lis[i].index = i;
                lis[i].onmouseover=function(){
                    alert(lis[this.index].getElementsByTagName('div')[0]);
                }
            }
        }

谁调用这个函数, this 就指代谁.

望采纳!

查看完整回答
1 反对 回复 2016-07-08
  • 1 回答
  • 0 关注
  • 1331 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信