getElementsByTagName().Länge gibt null zurück
Ich versuche zu tun, eine einfache Sache wie:
var elements = document.getElementsByTagName("input");
console.log(elements);
console.log(elements.length);
Die Konsole.log(Elemente) zeigt die Knotenliste mit 28 input-Elemente, sondern die Elemente.Länge ist immer 0.
Habe ich auch gesehen, diese getElementsByTagName("div").die Länge null für eine beliebige Webseite aber ich habe nicht verstanden was genau ist der Grund, warum es passiert und wie man es beheben. Ich habe auch bemerkt, daß dies geschieht sowohl Firefox, IE, Chrome.
Könnte jemand mir helfen?
Kann nicht ganz vergessen, sicher, aber versuchen tun Elemente.length() - Länge kann eine Funktion sein, kann nicht remembe.r
Sind Sie sicher, dass Sie anrufen, Ihr code, wenn das Dokument/DOM geladen ist? Es könnte sein, dass beim Aufruf getElementsByTagName, keine input-Elemente existieren, aber da Nodelisten sind dynamisch, wenn das Dokument geladen wird, die Elemente enthalten, die alle 28 Eingänge.
Es scheint, als würde das DOM geladen ist nicht. Kopieren Sie und fügen Sie diese in die URL Ihrer Seite, um zu sehen, was es ist, nachdem das DOM geladen. javascript:var elements=document.getElementsByTagName("input");alert("Element "+Elemente.Länge+" Kinder");
Du hast Recht, es ist, weil der DOM geladen ist nicht. Dank Rafael und adorablepuppy!
Sind Sie sicher, dass Sie anrufen, Ihr code, wenn das Dokument/DOM geladen ist? Es könnte sein, dass beim Aufruf getElementsByTagName, keine input-Elemente existieren, aber da Nodelisten sind dynamisch, wenn das Dokument geladen wird, die Elemente enthalten, die alle 28 Eingänge.
Es scheint, als würde das DOM geladen ist nicht. Kopieren Sie und fügen Sie diese in die URL Ihrer Seite, um zu sehen, was es ist, nachdem das DOM geladen. javascript:var elements=document.getElementsByTagName("input");alert("Element "+Elemente.Länge+" Kinder");
Du hast Recht, es ist, weil der DOM geladen ist nicht. Dank Rafael und adorablepuppy!
InformationsquelleAutor mobius | 2011-04-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
NodeList
ist eine live-Kollektion und non-deferred scripts direkt ausführen (siehe script defer).Versuchen Sie diese und Sie werden eine Vorstellung bekommen von dem, was passiert:
console.log(elements)
undconsole.log(elements.length)
berichten uneinheitlich. Wenn du mal die hier, ich Wette, es zeige 1 element1
und 2 Elemente,2
.Ich habe es. Ich werde markieren Sie diese als die richtige Antwort, da Sie in der Mühe geben, es mit einem Beispiel, obwohl beide Kommentare oben sind auch richtig 🙂 vielen Dank an alle! 🙂
wie hast du es gelöst?
Um das Problem zu lösen, verschieben Sie das Skript, um nach dem Körper Lasten
InformationsquelleAutor c-smile