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

为什么函数内定义的函数不能使用i?为什么用setAttribute赋值的属性不能调用?

为何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";

}

}

}

正在回答

1 回答

函数内定义的函数是一个js闭包,具体看这篇博客http://www.cnblogs.com/nuannuan7362/p/5774857.html

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

举报

0/150
提交
取消

为什么函数内定义的函数不能使用i?为什么用setAttribute赋值的属性不能调用?

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