ich in Ergebnisse um die Diskrepanz eine harte Zeit Umhüllung meinem Kopf haben, wenn ich getElementsByClassName
auf zwei verschiedene Elemente nennen:Typoskript Rückgabetypen mit .getElementsByClassName()
Betrachten Sie den folgenden Code ein:
let section:HTMLElement = document.getElementById("mainSection");
// This returns NodeListOf<Element>
let blah1 = section.getElementsByClassName("blah");
// This returns HTMLCollectionOf<Element>
let blah2 = document.getElementsByClassName("blah");
Warum bekomme ich beim Aufruf der Methode auf section
eine NodeList
aber wenn ich es auf Dokument anrufe, bekomme ich eine HTMLCollection
?
Basiert auf der MDN Documentation, sollten sie nicht beide eine HTMLCollection
zurückgeben?
Ich verstehe, dass 'HTMLElements' nicht gültige HTML-Knoten enthalten kann. Wenn ich jedoch 'getElementsByClassName()' verwende, würde ich dann nicht nur gültige HTML-Elemente erhalten, die der Klasse entsprechen? Ich könnte keinen einfachen Text erhalten, wenn ich explizit eine Methode aufruft, die nach Elementen anhand ihres Klassennamens sucht. – Marquizzo
'getElementsByClassName' kann bei Ausführung auf einem beliebigen Element auch SVG-Elemente zurückgeben, die keine HTML-Elemente sind –