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);
}
}
}; 展开
获得第二个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);
}
}
}; 展开
展开全部
这个是闭包的问题
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都是不同的
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都是不同的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询