JS点击onclick事件

window.onload=function(){获得第二个UlvaroUl=document.getElementsByTagName("ul")[1];获得全部liv... window.onload = function () {
获得第二个Ul
var oUl = document.getElementsByTagName("ul")[1];
获得全部 li
var oLi = document.getElementsByTagName("li");

从下标第12个开始 第16个结束
for (var i = 12; i <= 16; i++) {

第12个点击事件
oLi[i].onclick = function () {
12-16背景改变
for (var j = 12; j <= 16; j++) {
oLi[j].style.backgroundColor = "Gray";
}

// oLi[i].style.backgroundColor = "Lime";
为什么我这里输出来是17

alert(i);
}
}
};
展开
 我来答
视镜未来
2013-09-09 · TA获得超过117个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:65.5万
展开全部
这个是闭包的问题
for (var i = 12; i <= 16; i++) {
(function(i){
第12个点击事件
oLi[i].onclick = function () {
12-16背景改变
for (var j = 12; j <= 16; j++) {
oLi[j].style.backgroundColor = "Gray";
}

// oLi[i].style.backgroundColor = "Lime";
为什么我这里输出来是17

alert(i);
}
}(i);
}
输入17是因为你的 i 是同一个变量
闭包后,由于函数变量不同,所以每个i都是不同的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式