Maison > interface Web > tutoriel CSS > Comment vérifier de manière fiable si un élément HTML contient une classe spécifique en JavaScript ?

Comment vérifier de manière fiable si un élément HTML contient une classe spécifique en JavaScript ?

Susan Sarandon
Libérer: 2024-12-22 13:01:41
original
443 Les gens l'ont consulté

How to Reliably Check if an HTML Element Contains a Specific Class in JavaScript?

Existe-t-il une méthode pour vérifier si un élément HTML contient une classe spécifique en JavaScript ?

Problème :

Les débutants en JavaScript s'appuient souvent sur la comparaison de la propriété className pour déterminer si un élément contient une classe particulière. Cependant, cette approche échoue lorsque l'élément a plusieurs classes et que la classe souhaitée n'est pas la seule présente.

Solution :

Pour résoudre ce problème, JavaScript fournit le propriété classList et la méthode contain. La propriété classList renvoie une liste de classes appliquées à l'élément et la méthode contain vérifie si une classe spécifique est incluse dans cette liste.

const element = document.getElementById("test");
const hasClass1 = element.classList.contains("class1");
Copier après la connexion

Cette approche fonctionne de manière fiable quel que soit le nombre de classes présentes sur l'élément. element.

Approches alternatives :

Si classList n'est pas pris en charge dans le navigateur cible, une méthode alternative l'utilisation de la fonction indexOf peut être utilisée :

function hasClass(element, className) {
  return (" " + element.className + " ").indexOf(" " + className + " ") > -1;
}
Copier après la connexion

Implémentation :

Pour appliquer cette approche à l'exemple fourni dans la question, remplacez l'instruction switch d'origine par la code suivant :

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

element.textContent = "";

for (let i = 0; i < classes.length; i++) {
  if (element.classList.contains(classes[i])) {
    element.textContent = `I have ${classes[i]}`;
    break;
  }
}
Copier après la connexion

Ce code parcourt les classes attendues et affiche la première qui est présente sur l'élément.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal