Heim  >  Artikel  >  Web-Frontend  >  Wie rufe ich Elemente nach Klassennamen im Internet Explorer ab?

Wie rufe ich Elemente nach Klassennamen im Internet Explorer ab?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-06 00:48:02878Durchsuche

How to Retrieve Elements by Class Name in Internet Explorer?

getElementsByClassName() Kompatibilität mit IE

Frage: So rufen Sie effektiv ein Array von Elementen mit einer bestimmten Klasse ab , unter Berücksichtigung der IE-Kompatibilität Einschränkungen?

Antwort:

Document.getElementsByClassName() ist eine moderne Methode, die vom IE nicht unterstützt wird. Erwägen Sie stattdessen die folgenden Ansätze:

Benutzerdefinierte Funktion (IE6):

Definieren Sie eine benutzerdefinierte Funktion, um getElementsByClassName() zu emulieren. Dazu gehört das Durchlaufen des DOM und das Testen der Klassennamen der Elemente anhand eines bereitgestellten Klassennamens:

<code class="js">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;
}

// Usage:
var tabs = getElementsByClassName(document.body, 'tab');</code>

querySelectorAll (IE8):

Wenn die Unterstützung von IE8 oder höher ausreichend ist Erweitern Sie die Dokument- und Elementobjekte, um querySelectorAll() zu unterstützen:

<code class="js">if (!document.getElementsByClassName) {
    document.getElementsByClassName = function (className) {
        return this.querySelectorAll('.' + className);
    };
    Element.prototype.getElementsByClassName = document.getElementsByClassName;
}

// Usage:
var tabs = document.getElementsByClassName('tab');</code>

Stellen Sie sicher, dass Sie aufrufen getElementsByClassName() mit dem gewünschten Knoten als erstes Argument, da es sich nicht um eine Dokumentmethode handelt. Durch die Implementierung einer dieser Lösungen können Sie Elemente nach Klassennamen abrufen und so die Kompatibilität mit einer größeren Auswahl an Browsern, einschließlich IE, gewährleisten.

Das obige ist der detaillierte Inhalt vonWie rufe ich Elemente nach Klassennamen im Internet Explorer ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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