我写了一个函数来改变元素的类来改变它们的属性。出于某种原因,只有一些元素发生了变化。我花了几个小时才找到解决方案,但对我来说似乎很奇怪。也许你可以向我解释一下。
这不起作用:
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
被调用并且不需要增量。这是正常的吗?这与我见过的例子不同。