var mainMenu = document.getElementById("mainMenu").getElementsByTagName("li"); for(var i = 0; i < 5; i++){ mainMenu[i].onclick= (function(num) { console.log(num); })(i);为什么我还没有点击,一打开网页后台就打印了所有i值??求各位大神帮忙解答一下,万分感谢
4 回答
已采纳
慕少1338687
TA贡献9条经验 获得超3个赞
这是用闭包的方式写的,有点绕,你可以用this.index写
for(var i = 0; i < 5; i++){
mainMenu[i].onclick = (function(num){
return function(){
console.log(num);
};
})(i);
}
OlderSkee
TA贡献123条经验 获得超103个赞
(function(){})(i)是个自执行函数 当然是网页一打开就执行了咯。
函数体改成这样就可以实现 点哪个li打印哪个li
for(var i = 0; i < 5; i++) {
mainMenu[i].index = i;
mainMenu[i].onclick = function () {
console.log(this.index);
};
}
添加回答
举报
0/150
提交
取消