I wrote a function to change the class of elements to change their properties. For some reason, only some of the elements have changed. It took me a few hours to find a solution, but it seems odd to me. Perhaps you can explain this to me.
This isn’t working:
function replace(){
  var elements = document.getElementsByClassName('classOne');
  for (var i = 0; i < elements.length; i++) {
    elements[i].className = 'classTwo';               
  }
}
See the JSFiddle: only every second item is affected; only every second red element changes color to blue.
So I changed the final expression of the for loop to not increment i anymore:
function replace(){
  var elements = document.getElementsByClassName('classOne');
  for (var i = 0; i < elements.length; i) { // Here’s the difference
    elements[i].className = 'classTwo';               
  }
}
This works well! It seems as though push is called and no increment is needed. Is this normal? It is different from the examples I’ve seen.
 
     
     
     
     
    