duskrain
2016-08-15 11:29
为何divs[i].className="show";中i不能直接在函数内函数中直接使用?如果把i改为this.index为何setAttribute也没用?
window.onload=function(){
var tablist=document.getElementById("tablist");
var lis=tablist.getElementsByTagName("li");
var choise=document.getElementById("choise");
var divs=choise.getElementsByTagName("div");
for(var i=0;i<lis.length;i++){
lis[i].setAttribute("index",i);
lis[i].onclick=function(){
for(var j=0;j<lis.length;j++){
lis[j].className="";
}
this.className="active";
for(j=0;j<divs.length;j++){
divs[j].className="hide";
}
divs[i].className="show";
}
}
}
函数内定义的函数是一个js闭包,具体看这篇博客http://www.cnblogs.com/nuannuan7362/p/5774857.html
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题