问答详情
源自:10-1 编程挑战

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

	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就没有响应,改成注释就是正确的?


提问者:NJUcong 2017-01-21 09:58

个回答

  • 精慕门6049318
    2017-02-11 01:04:43

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

  • 啊啊啊啊123
    2017-02-05 11:19:29

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

  • 慕粉0756009328
    2017-01-21 10:33:47

    我也是新手,我感觉你的代码这里问题出在"divs[i].className"里的 i  上,不如你alert一下这个i试试