In the code below
<!DOCTYPE html> <html> <head> <title>Hide odd rows</title> <meta charset="UTF-8"> </head> <body> <div style="background-color:#8F9779;width:200px;height:30px;"> </div> <hr style="width:200px" align="left"> <table border="1" > <tr class="hide" > <td width="40" height="20">row 1</td> </tr> <tr> <td width="40" height="20">row 2</td> </tr> <tr class="hide"> <td width="40" height="20">row 3</td> </tr> <tr> <td width="40" height="20">row 4</td> </tr> <tr class="hide"> <td width="40" height="20">row 5</td> </tr> </table><br> <button type="button" name="HideRows">Hide Odd Rows</button> <script type="text/javascript" src="hideOddRows.js"></script> </body> </html>
document.querySelector('[name=HideRows]').onclick = hideRows; function hideRows(){ var elements = document.getElementsByClassName('hide'); elements.forEach(function(element){ element.style.visibility = "hidden"; }); return true; }
According to debugging, the callback function for each element the elements array is not executed on the click event.
I consider elements as a collection with a key, as shown below.

-
How to resolve this error?
source share