Heim >Web-Frontend >js-Tutorial >Wie kann man in JavaScript effizient auf das Vorhandensein von Elementklassen prüfen?

Wie kann man in JavaScript effizient auf das Vorhandensein von Elementklassen prüfen?

DDD
DDDOriginal
2024-11-30 20:30:16705Durchsuche

How to Efficiently Check for Element Class Presence in JavaScript?

Überprüfung auf Vorhandensein von Elementklassen in JavaScript

Wie können Sie mit einfachem JavaScript feststellen, ob ein Element eine bestimmte Klasse enthält? Bei Verwendung der className-Eigenschaft ist eine genaue Klassenübereinstimmung erforderlich, was zu Einschränkungen führt, wenn ein Element mehrere Klassen hat.

Lösung: element.classList.contains

Element. classList stellt eine .contains-Methode bereit, die speziell für diesen Zweck entwickelt wurde:

element.classList.contains(className);

Diese Methode wird von allen modernen Browsern unterstützt und kann unterstützt werden polyfilled für ältere Versionen.

Alternative: Verwendung von indexOf

Alternativ können Sie element.className und indexOf für ältere Browser verwenden, denen die ClassList-Unterstützung fehlt, jedoch sind geringfügige Anpassungen erforderlich um die Genauigkeit zu gewährleisten:

function hasClass(element, className) {
    return (' ' + element.className + ' ').indexOf(' ' + className+ ' ') > -1;
}

Dadurch wird sichergestellt, dass die gesuchte Klasse kein Teilstring einer anderen Klasse ist Name.

Codebeispiel

So wenden Sie diese Lösung auf Ihre spezifische Situation an:

var test = document.getElementById("test");
var classes = ['class1', 'class2', 'class3', 'class4'];

test.innerHTML = "";

for(var i = 0, j = classes.length; i < j; i++) {
    if(hasClass(test, classes[i])) {
        test.innerHTML = "I have " + classes[i];
        break;
    }
}

Dieser Code verwendet einen effizienteren Ansatz durch Durchschleifen eine vordefinierte Reihe potenzieller Klassen, die Redundanz reduziert und die Wartbarkeit verbessert.

Das obige ist der detaillierte Inhalt vonWie kann man in JavaScript effizient auf das Vorhandensein von Elementklassen prüfen?. 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