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

请问为什么使用一个for循环就可以实现选项卡切换啊?

第二个for循环我知道,就是统一格式化所有选项卡。

第一个for循环是怎么实现选项切换的没看明白。

求解答

正在回答

4 回答

从上到下按顺序执行,页面加载到此处运行第一个for里面的oli[i].index=i;此时不执行onclick这一段,当发生点击事件时才执行,建议可以在多处增加console.log()的语句在控制台查看是否执行~

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

第一个for循环只是遍历一下li,给所有li加上点击事件;第二个for循环作用是,先把其它的class清除掉,再给当前点击的li加上class。没有发生点击事件的时候,外面for循环执行到“oli[i].index=i; ”,当网页加载好的同时就已经获取了所有index,里面的for循环下面两行是点击后才执行的。你看对应的花括号就是了。

oli[i].onclick = function(){
    // 里面所有的语句都被onclick事件包含。
    ……
}

这是我的理解,如果有其他同学的理解跟我不一样欢迎指出来。大家一起学习。谢谢

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

当没有发生点击事件的时候,外面那个for循环执行到哪一步啊?是当网页加载好的同时就已经获取了所有index,还是要点击的时候才获取相应的index啊?内for循环下面那两行是要点击事件发生后才执行吗?

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

window.onload=function(){

        var oul=document.getElementsByTagName("ul")[0];

        var oli=oul.getElementsByTagName("li");

        var odiv=document.getElementsByTagName("div");

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

            oli[i].index=i;

            oli[i].onclick=function(){

                for(var j=0;j<oli.length;j++){

                    oli[j].className="";

                    odiv[j].className="hide";

                }

            this.className="on";

            odiv[this.index].className="";

            }

        }

    }


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

举报

0/150
提交
取消

请问为什么使用一个for循环就可以实现选项卡切换啊?

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