ich habe mir mit
document.getElementsByTagName("ul")
alle <ul>s ermitteln lassen. Diese Funktion gibt mir nicht etwa - wie ich so blauäugig erwartet hätte - ein Array mit den Referenzen zu den HTML-Elementen zurück, sondern ein "object". Aber dieses Objekt kann ich (wie eben ein Array) mit einem Index abfragen und so auf die Elemente zugreifen:
Es ist eine HTMLCollection
Warum geht denn nun die Eigenschaft length nicht um einen Zähler hoch? I
Weil es kene Array ist. Du kannst vielleicht length von Hand erhöhen (grad keine Lust zu probieren).
Durch meine Objektmanipulationen wird die von Javascript erzeugte Aussage über die Anzahl im Dokument vorhandener <ul>-Elemente völlig zweckentfremdet, das ist klar. Aber ein neues Objekt zu definieren, in das ich dann alles "hinüberkopiere" empfinde ich als nicht besonders praktisch... Und außerdem habe ich ja eine Variablen "alle_uls" mit einer Kopie des von der Funktion getElementsByTagName zurückgegebenen Wertes gefüttert. Damit wäre mein Vorgehen ja nicht verwerflich...
Soweit ich weiß benutzt JS Referenzen bei Objekten, d.h. wenn du die Objekte in eine eigenes Array kopierst, werden keine Kopien angelegt, sondern nur die Referenz auf das Objekt. Insofern wäre das durchaus nicht unpraktisch, wenn du unbedingt es so machen willst.
Struppi.