Heim  >  Artikel  >  Web-Frontend  >  Wie kann ich Elemente nach Klasse in JavaScript abrufen, insbesondere aus Gründen der IE-Kompatibilität?

Wie kann ich Elemente nach Klasse in JavaScript abrufen, insbesondere aus Gründen der IE-Kompatibilität?

Susan Sarandon
Susan SarandonOriginal
2024-11-05 21:41:02815Durchsuche

How Can I Retrieve Elements by Class in JavaScript, Especially for IE Compatibility?

Elemente nach Klasse in JavaScript abrufen, einschließlich IE-Kompatibilität

Das Abrufen eines Arrays von Elementen basierend auf ihrer Klasse ist eine häufige Aufgabe in JavaScript. Für Browser, die document.getElementsByClassName() nicht nativ unterstützen, wie z. B. IE, ist jedoch ein alternativer Ansatz erforderlich.

Eine beliebte Lösung ist die Funktion von Jonathan Snook. Diese Funktion verwendet einen regulären Ausdruck, um die className-Eigenschaft jedes Elements zu testen. Im IE wird jedoch die Fehlermeldung „Objekt unterstützt diese Eigenschaft oder Methode nicht“ ausgegeben.

Der Schlüssel besteht darin, zu erkennen, dass getElementsByClassName() keine Methode des Dokumentobjekts ist. Stattdessen sollte es direkt auf dem Knoten aufgerufen werden, auf dem Sie nach Elementen suchen möchten:

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');

Für IE8 besteht ein prägnanterer Ansatz darin, die Funktion getElementsByClassName() mehrfach zu füllen:

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

var tabs = document.getElementsByClassName('tab');

Mit diesen Techniken können Sie Elemente nach Klasse abrufen und so die Kompatibilität mit IE und anderen Browsern sicherstellen.

Das obige ist der detaillierte Inhalt vonWie kann ich Elemente nach Klasse in JavaScript abrufen, insbesondere aus Gründen der IE-Kompatibilität?. 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