慕尼黑6037883
2019-03-31 15:38
第二个for循环我知道,就是统一格式化所有选项卡。
第一个for循环是怎么实现选项切换的没看明白。
求解答
从上到下按顺序执行,页面加载到此处运行第一个for里面的oli[i].index=i;此时不执行onclick这一段,当发生点击事件时才执行,建议可以在多处增加console.log()的语句在控制台查看是否执行~
第一个for循环只是遍历一下li,给所有li加上点击事件;第二个for循环作用是,先把其它的class清除掉,再给当前点击的li加上class。没有发生点击事件的时候,外面for循环执行到“oli[i].index=i; ”,当网页加载好的同时就已经获取了所有index,里面的for循环下面两行是点击后才执行的。你看对应的花括号就是了。
oli[i].onclick = function(){ // 里面所有的语句都被onclick事件包含。 …… }
这是我的理解,如果有其他同学的理解跟我不一样欢迎指出来。大家一起学习。谢谢
当没有发生点击事件的时候,外面那个for循环执行到哪一步啊?是当网页加载好的同时就已经获取了所有index,还是要点击的时候才获取相应的index啊?内for循环下面那两行是要点击事件发生后才执行吗?
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="";
}
}
}
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题