I attached a codepen example : http://codepen.io/anon/pen/zpmjJ
I just try to change the classname of an html collection array with a classic loop and after many tes
getElementsByClassName
is live selector, so when you change something that not matching this selector, it will remove element from scope. So at first iteration it has 3 elements, but when you change class, it remove one element and you leave with 2 elements, so on next iteration it will take i
element which is i=1
so it will take second element from top. That's why you get always 1 missing. You may use newtest[0].className="bob";
to loop through, but when you will reach last element, it will be single element, not array
any more, so you need to use newtest.className="bob";
for last one