I have a table containing 3 rows. Each line has a class: .myClass .
Then I query the table rows with document.getElementsByClassName('myClass') and document.getElementsByClassName('myClass') over the elements, changing each row class to .otherClass .
However
console.log(document.getElementsByClassName('otherClass'))
returns only one row.
And when I looked at the DOM, only the first line of .myClass changed the class to .otherClass ; the other remained untouched.
How to change the class of all .myClass strings to .otherClass ?
var c = document.getElementsByClassName('myTable')[0]; var x = c.getElementsByClassName('myClass'); for (var i = 0; i < x.length; i++) { x[i].className = 'otherClass'; } x = c.getElementsByClassName('otherClass'); console.log(x);
<table class="myTable"> <tr class="myClass2"> <td>Content</td> <td>Content</td> </tr> <tr class="myClass"> <td>Content</td> <td>Content</td> </tr> <tr class="myClass"> <td>Content</td> <td>Content</td> </tr> </table>
source share