我写了一个函数来改变元素的类来改变它们的属性。由于某种原因,只有部分元素发生了变化。我花了几个小时才找到解决方案,但这对我来说似乎很奇怪。也许你可以给我解释一下。
这不起作用:
function replace(){
var elements = document.getElementsByClassName('classOne');
for (var i = 0; i < elements.length; i++) {
elements[i].className = 'classTwo';
}
}
见 JSFiddle:只有第二个项目受到影响;只有每隔一个红色元素将颜色变为蓝色。
所以我将for
循环的最终表达式更改为不再增加i
:
function replace(){
var elements = document.getElementsByClassName('classOne');
for (var i = 0; i < elements.length; i) { // Here’s the difference
elements[i].className = 'classTwo';
}
}
这很好用!似乎push
被调用并且不需要增量。这是正常的吗?这与我见过的例子不同。