Im folgenden Code,forEach Rückruf nicht ausgeführt mit getElementsByClassName
<!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>
/* hideOddRows.js */
document.querySelector('[name=HideRows]').onclick = hideRows;
function hideRows(){
var elements = document.getElementsByClassName('hide');
elements.forEach(function(element){
element.style.visibility = "hidden";
});
return true;
}
Per Debugging, Callback-Funktion für jede element
von elements
Array nicht auf Click-Ereignis ausgeführt wird.
I elements
als Schlüssel Sammlung betrachten, wie unten dargestellt ..
-
Wie dieser Fehler beheben?
'Elemente' haben' nodelist' und 'forEach' funktioniert nicht mit' nodelist'. Probieren Sie '[] .forEach.call (elements, function (item) {});' – Rayon