for循环执行顺序

来源:10-1 编程挑战

爱丽丝走丢了

2015-08-26 18:07

for(var i=0;i<oLis.length;i++){
            oLis[i].index=i;
            oLis[i].onclick=function(){
                alert(i);
                for(var j=0;j<oLis.length;j++){
                    oLis[j].className="";
                    oDivs[j].className="hide";
                }
                this.className="on";
                oDivs[this.index].className="";
            }     
}

这部分不明白,for循环是跳过oLis[i].onclick=function()执行完了么,为什么第四行alert(i)弹出是3,i的最大值应该是2啊,如果for循环是执行完了,之后点击选项卡是怎么进入到for循环的onclick事件的?

写回答 关注

1回答

  • 化龙贝
    2015-08-26 18:27:30
    已采纳

    onclick 是一个事件

    而事件是需要出发条件的,当你点击的时候,就触发啦


    至于为什么弹出的都是3 

    按理来说应该是2,那就要降到for的执行顺序

    for( ①; ②; ③  ){

        ④

    }

    so,来模拟运行下: ①,②,④,③ ,②,④,③ .....

    故,①只会执行一次,②④会执行 n 次, ③会执行 n+1 次

    爱丽丝走丢了

    恩 明白了 thanks~

    2015-08-26 18:53:04

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题