Ich habe eine <div>
mit einem Kind <div>
drin. Z.B.Warum funktioniert forEach nicht für Kinder?
<div id="niceParent">
<div></div>
<div></div>
<div></div>
<div></div>
</div>
ich versuchte, durch sie in einer Schleife mit der forEach
Funktion, weil ich dachte, dass document.getElementById("niceParent").children
ist ein Array, wie ich die Elemente zugreifen kann mit
console.log(document.getElementById("niceParent").children[1]);
console.log(document.getElementById("niceParent").children[2]);
console.log(document.getElementById("niceParent").children[3]);
console.log(document.getElementById("niceParent").children[4]);
Daher habe ich versucht
document.getElementById("niceParent").children.forEach(function(entry) {
console.log(entry);
});
was nicht funktioniert. Ich bekomme
TypeError: document.getElementById(...).children.forEach is not a function
Als Abhilfe, die ich versuchte es auch mit-viel mehr complicated- for..in
Schleife:
for (var i in document.getElementById("niceParent").children) {
if (document.getElementById("niceParent").children[i].nodeType == 1) console.log(document.getElementById("niceParent").children[i]);
}
, die wie erwartet gearbeitet.
Warum?
Ich möchte sowohl Felix Kling als auch lonesomeday antworten, da sie t sind er selbe trotz einiger Aliase benutzt. Vielen Dank. Speziell für den Link zu MDN. – erik
In ECMAScript6 kann man 'Array.prototype.from()' verwenden, um die Absicht einer übersichtlicheren Umwandlung in ein Array anzugeben. –
@ АндрейБеньковский: guter Punkt! Ich werde meine Antwort aktualisieren. –