看一段代码:
var lis = document.getElementsByTagName("li"); //4个for(var i in lis){ i.style.backgroundColor = "white"; }
这段代码并没有达到我想要的效果(把4个li的背景设成白色);但是,改成for循环就可以了:
var lis = document.getElementsByTagName("li"); //4个for(var i=0; i
这是为什么呢?
原来,for-in 遍历的不是数组,而是对象,得到的 i 也不是数组的元素,而是对象的各个属性;通过for循环然后用下标值得到的才是数组中的元素!
且看如下验证:
var lis = document.getElementsByTagName("li");for(var i in lis){ console.log(i);}
输出为属性:
而 for 循环:
var lis = document.getElementsByTagName("li");for(var k=0; k
输出为数组中的元素: