Hallo,
Ihr immer mit den »Collections«! ;)
nur der Vollständigkeit halber: Ich habe erst kürzlich gelernt, dass es sich bei y nicht um ein Array, sondern um eine HTMLCollection handelt (ein anscheinend besonderes Objekt)...
getElementsByTagName gibt eine Knotenliste (NodeList) zurück.
HTMLCollections sind wieder was anderes, das sind besondere Knotenlisten, bei denen die Methode namedItem() bzw. die Schreibweise collection["name"] existiert. HTMLCollections werden bei document.images, document.links, document.forms usw. verwendet.
NodeLists und HTMLCollections sollte man nicht verwechseln.
eine Collection ist eigentlich bloß die Javascript-Entsprechung von Array oder Objekt.
Äh...? Nein! Eine NodeList ist ein spezielles JavaScript-Objekt.
Die JS-Strukturen sind gewissermaßen eine Kreuzung aus dem, was andere, streng typorientierte Programmiersprachen als Array einerseits und als Objekt andererseits kennen.
Äh. Es gibt ganz normale Arrays in JavaScript. Und Arrays sind Objekte. Was hat das mit HTMLCollections zu tun?
NodeLists oder HTMLCollections sind keine normalen Arrays. Die Elemente einer NodeList/HTMLCollection lassen sich aber genauso wie die Elemente eines Arrays über ihren Index mit der []-Schreibweise ansprechen. Das ist die einzige Gemeinsamkeit. Alle drei sind listenartige Datenstrukturen.
Eigentlich gibts kein Grund zur Konfusion. ;)
Mathias