要素のクラスを変更してプロパティを変更する関数を作成しました。何らかの理由で、一部の要素のみが変更されました。解決策を見つけるのに数時間かかりましたが、それは私には奇妙に思えます。おそらくあなたは私にこれを説明することができます。
これは機能していません:
function replace(){
var elements = document.getElementsByClassName('classOne');
for (var i = 0; i < elements.length; i++) {
elements[i].className = 'classTwo';
}
}
JSFiddleを参照してください。1つおきのアイテムのみが影響を受けます。1つおきの赤い要素だけが色を青に変えます。
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
で、増分は必要ありません。これは正常ですか?私が見た例とは異なります。