Heim > Web-Frontend > js-Tutorial > Wie kann ich „document.getElementsByClassName' im Internet Explorer verwenden?

Wie kann ich „document.getElementsByClassName' im Internet Explorer verwenden?

Barbara Streisand
Freigeben: 2024-11-08 16:54:02
Original
901 Leute haben es durchsucht

How Can I Use `document.getElementsByClassName` in Internet Explorer?

JavaScript document.getElementsByClassName-Kompatibilität mit IE

Beim Versuch, ein Elementarray mit einer bestimmten Klasse mithilfe von document.getElementsByClassName abzurufen, stößt IE auf Kompatibilitätsprobleme. Diese Methode wird vom IE nicht direkt unterstützt.

Jonathan Snooks Methode:

Die Verwendung der getElementsByClassName-Funktion von Jonathan Snook, die Elemente basierend auf einer Übereinstimmung mit regulären Ausdrücken sucht, kann zu Folgendem führen: Fehler im IE. Dies liegt daran, dass die Funktion nicht als Dokumentmethode definiert ist.

Lösung:

Um die Funktion mit dem IE kompatibel zu machen, sollte sie als separate Funktion aufgerufen werden ohne Bezugnahme auf das Dokument:

function getElementsByClassName(node, classname) {
    var a = [];
    var re = new RegExp('(^| )'+classname+'( |$)');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}

var tabs = getElementsByClassName(document.body,'tab');
Nach dem Login kopieren

IE8-Kompatibilität:

Für IE8 und höher kann ein alternativer Ansatz verwendet werden:

if(!document.getElementsByClassName) {
    document.getElementsByClassName = function(className) {
        return this.querySelectorAll("." + className);
    };
    Element.prototype.getElementsByClassName = document.getElementsByClassName;
}

var tabs = document.getElementsByClassName('tab');
Nach dem Login kopieren

Dieser Ansatz nutzt die in IE8 unterstützte querySelectorAll-Methode, die ähnlich wie getElementsByClassName funktioniert.

Das obige ist der detaillierte Inhalt vonWie kann ich „document.getElementsByClassName' im Internet Explorer verwenden?. 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