Kompatibilität von document.getElementsByClassName im IE
Internet Explorer stellt eine Herausforderung dar, wenn versucht wird, mithilfe von document ein Array von Elementen mit einer bestimmten Klasse abzurufen .getElementsByClassName(). Um diese Einschränkung zu überwinden, ist eine benutzerdefinierte Lösung erforderlich.
Methode von Jonathan Snook
Ein Ansatz zur Emulation von document.getElementsByClassName() im IE ist die Verwendung der Funktion von Jonathan Snook durchläuft alle Elemente innerhalb eines Knotens mit getElementsByTagName(*) und filtert sie basierend auf dem Vorhandensein der gewünschten Klasse.
IE-Inkompatibilität
Trotz der Implementierung der Snook-Lösung ist ein Im IE kann weiterhin ein Fehler auftreten, der besagt: „Das Objekt unterstützt diese Eigenschaft oder Methode nicht.“ Dies liegt daran, dass getElementsByClassName() keine direkte Methode des Dokumentobjekts im IE ist.
Korrigierte Implementierung
Die korrekte Implementierung der Snook-Funktion erfordert die explizite Angabe des Zielknotens :
var tabs = getElementsByClassName(document.body, 'tab');
IE8-Unterstützung
Für IE8 und spätere Versionen kann ein vereinfachter Ansatz verwendet werden:
if (!document.getElementsByClassName) { document.getElementsByClassName = function(className) { return this.querySelectorAll("." + className); }; Element.prototype.getElementsByClassName = document.getElementsByClassName; }
Dieses Code-Snippet definiert getElementsByClassName() als Methode des Dokumentobjekts und stellt es auch einzelnen Elementen über Element.prototype.getElementsByClassName() zur Verfügung.
Verwendung
Nach der Implementierung wird die Die Methode getElementsByClassName() kann wie folgt verwendet werden:
var tabs = document.getElementsByClassName('tab');
Das obige ist der detaillierte Inhalt vonWie verwende ich getElementsByClassName() im Internet Explorer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!