Maison >interface Web >js tutoriel >Comment vérifier efficacement la présence d'une classe d'éléments en JavaScript ?

Comment vérifier efficacement la présence d'une classe d'éléments en JavaScript ?

DDD
DDDoriginal
2024-11-30 20:30:16642parcourir

How to Efficiently Check for Element Class Presence in JavaScript?

Vérification de la présence d'une classe d'élément en JavaScript

En utilisant JavaScript de base, comment pouvez-vous déterminer si un élément contient une classe spécifique ? Lors de l'utilisation de la propriété className, une correspondance exacte de classe est requise, ce qui entraîne des limitations lorsqu'un élément a plusieurs classes.

Solution : element.classList.contains

Element. classList expose une méthode .contains spécialement conçue à cet effet :

element.classList.contains(className);

Cette méthode est prise en charge par tous les navigateurs modernes et peut être polyfilled pour les anciennes versions.

Alternative : Utilisation d'indexOf

Vous pouvez également utiliser element.className et indexOf pour les navigateurs plus anciens qui ne prennent pas en charge classList, mais des ajustements mineurs sont nécessaires pour garantir l'exactitude :

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

Cela garantit que la classe recherchée n'est pas une sous-chaîne d'une autre classe nom.

Exemple de code

Pour appliquer cette solution à votre situation spécifique :

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;
    }
}

Ce code utilise une approche plus efficace en parcourant un tableau prédéfini de classes potentielles, réduisant la redondance et améliorant la maintenabilité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn