this和as[i]

来源:5-1 编程挑战

坏骇芓

2016-06-29 16:42

 for(var i=0;i<as.length;i++)

                {

                    as[i].onmouseover=function(){

                        this.style.background="#ccc";

                    }

                    as[i].onmouseout=function(){

                        this.style.background="none";

                    }

                    as[i].onclick=function(){

                        title.innerHTML=this.innerHTML;

                    }

                }

我之前的this都是用的as[i],为什么不行呢

写回答 关注

3回答

  • AGhosts
    2016-06-29 22:52:46
    已采纳

    as[i].onmouseover=function(){

                           as[i].style.background="#ccc";  // 此时,as[i]为最后一次循环结果

                        }

    而 this 则是指向当前对象


    坏骇芓

    当前对象又是指的什么

    2016-07-11 09:21:08

    共 1 条回复 >

  • latency
    2016-08-05 17:13:56

    是执行顺序的关系,先循环为每个元素绑定事件,循环结束后才开始执行事件中的代码。这时,i的值已经越界,用as[i]取不到正确的值。

  • AGhosts
    2016-07-15 14:41:25

    当前对象指你现在循环到的对象

DOM事件探秘

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

99545 学习 · 1197 问题

查看课程

相似问题