Pourquoi est forEach ne fonctionne pas pour les enfants?

J'ai un <div> avec un enfant <div>. E. g.

<div id="niceParent">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

J'ai essayé de boucle avec la forEach fonction, parce que je pensais que document.getElementById("niceParent").children est un tableau, que je puisse avoir accès aux éléments avec

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]);

Donc j'ai essayé

document.getElementById("niceParent").children.forEach(function(entry) {
  console.log(entry);
});

qui ne fonctionne pas. Je reçois

TypeError: document.getElementById(...).children.forEach is not a function

Comme une solution de contournement j'ai aussi essayé avec un—beaucoup plus compliqué—for..in boucle:

for (var i in document.getElementById("niceParent").children) {
  if (document.getElementById("niceParent").children[i].nodeType == 1) console.log(document.getElementById("niceParent").children[i]);
}

qui a fonctionné comme prévu.

Pourquoi?

OriginalL'auteur erik | 2013-02-26