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

编程挑战中的函数参数的调用问题

	window.onload = function() {
        var obj1 = document.getElementById("ul1");
        var objli = obj1.getElementsByTagName("li");
        var adiv = document.getElementById("my_table");
        var divs = adiv.getElementsByTagName("div");
		for(var i=0;i<objli.length;i++){
			objli[i].index=i;
			objli[i].onclick = function(){
        	for(var j = 0; j < objli.length; j++) {
				objli[j].className = "";
				divs[j].className = "hide";
			}
			this.className = "active";
			divs[i].className = "show";//divs[this.index].className = "show";
			}
		}
		}

为什么用语句:divs[i].className = "show";修改div的class就没有响应,改成注释就是正确的?


正在回答

3 回答

这个i的外循环只会执行一次 之后i就不会变了 你点击事件以后i的值是一会保持不变的 

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

我只能说这个是 闭包的知识 。"divs[i].className"里的 i一直都是3

0 回复 有任何疑惑可以回复我~
我也是新手,我感觉你的代码这里问题出在"divs[i].className"里的 i  上,不如你alert一下这个i试试


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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468189    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

编程挑战中的函数参数的调用问题

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