Heim > Artikel > Web-Frontend > Wie funktioniert document.getElementsByClassName im Internet Explorer?
Kompatibilität von document.getElementsByClassName mit Internet Explorer
Die Methode document.getElementsByClassName bietet eine bequeme Möglichkeit, Elemente mit einer bestimmten Klasse abzurufen. Es treten jedoch Kompatibilitätsprobleme mit Internet Explorer (IE) auf.
Jonathan Snooks Lösung
Ein gängiger Ansatz zur Behebung dieses Problems ist die Verwendung der benutzerdefinierten Funktion getElementsByClassName von Jonathan Snook . Diese Funktion verwendet einen regulären Ausdruck, um nach Elementen mit dem gewünschten Klassennamen zu suchen.
Der IE kann bei dieser Lösung jedoch aufgrund eines falschen Aufrufs immer noch auf einen Fehler stoßen. Die Funktion sollte wie folgt aufgerufen werden:
function getElementsByClassName(node, classname) {...} tabs = getElementsByClassName(document.body, 'tab');
Anstelle von:
document.getElementsByClassName(document.body, 'tab');
Andere kompatible Optionen
Bei Unterstützung für IE8 und höher ausreicht, können Sie die folgende Polyfüllung für document.getElementsByClassName implementieren:
if (!document.getElementsByClassName) { document.getElementsByClassName = function (className) { return this.querySelectorAll('.' + className); }; Element.prototype.getElementsByClassName = document.getElementsByClassName; } tabs = document.getElementsByClassName('tab');
Fazit
Indem Sie den Aufruf der Funktion von Jonathan Snook anpassen oder die bereitgestellte Polyfüllung verwenden, Sie können Kompatibilitätsprobleme mit document.getElementsByClassName im IE beheben.
Das obige ist der detaillierte Inhalt vonWie funktioniert document.getElementsByClassName im Internet Explorer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!