Ho un <div>
con un bambino <div>
in esso. Per esempio.Perché per Each non funziona per i bambini?
<div id="niceParent">
<div></div>
<div></div>
<div></div>
<div></div>
</div>
Ho provato a ciclo attraverso di loro con la funzione forEach
, perché ho pensato che document.getElementById("niceParent").children
è un array, posso accedere agli elementi con
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]);
Quindi ho cercato
document.getElementById("niceParent").children.forEach(function(entry) {
console.log(entry);
});
che non funziona. Ottengo
TypeError: document.getElementById(...).children.forEach is not a function
Per aggirare il problema ho anche provato con un-molto più complicated- for..in
ciclo:
for (var i in document.getElementById("niceParent").children) {
if (document.getElementById("niceParent").children[i].nodeType == 1) console.log(document.getElementById("niceParent").children[i]);
}
che ha funzionato come previsto.
Perché?
Vorrei accettare sia la risposta di Felix Kling che quella di risposta solitaria, poiché sono t lui stesso nonostante alcuni alias usati. Grazie. Soprattutto per il collegamento a MDN. – erik
In ECMAScript6 si può usare 'Array.prototype.from()' per indicare l'intento di convertire in una matrice in un modo più chiaro. –
@ АндрейБеньковский: buon punto! Aggiornerò la mia risposta –