Heim > Web-Frontend > js-Tutorial > Wie verwende ich getElementsByClassName() im Internet Explorer?

Wie verwende ich getElementsByClassName() im Internet Explorer?

Mary-Kate Olsen
Freigeben: 2024-11-05 19:15:02
Original
369 Leute haben es durchsucht

How to Use getElementsByClassName() in Internet Explorer?

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');
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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');
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage