Détermination de la présence de classe dans les éléments
L'identification de l'appartenance à une classe d'un élément est cruciale pour le style CSS et la manipulation HTML dynamique. Bien que JavaScript fournisse des méthodes pour récupérer l'attribut className d'un élément, vérifier son existence pose un défi lorsqu'il s'agit de plusieurs classes.
Approche existante :
Actuellement, une approche courante implique :
switch (testClass) { case "class1": test.innerHTML = "I have class1"; break; // ... default: test.innerHTML = ""; }
Cependant, cette méthode ne fonctionne pas lorsque les éléments ont plusieurs classes, car elle ne correspond qu'aux correspondances exactes.
Utilisation d'element.classList.contains :
Une solution plus adaptée consiste à utiliser la méthode element.classList.contains :
element.classList.contains(class);
Cette méthode est prise en charge par tous les navigateurs modernes et fournit un moyen concis de vérifier l'appartenance à une classe.
Fonction personnalisée utilisant indexOf :
Pour les anciens navigateurs sans prise en charge de classList, une fonction personnalisée utilisant indexOf peut être utilisée :
function hasClass(element, className) { return (' ' + element.className + ' ').indexOf(' ' + className+ ' ') > -1; }
Cette fonction garantit que le spécifié class est dans l'attribut className de l'élément, même si elle fait partie d'un autre nom de classe.
Approche alternative utilisant une boucle :
Si vous préférez combiner cette fonctionnalité avec un switch, vous pouvez parcourir un tableau de noms de classes potentiels :
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; } }
Cette approche offre une plus grande flexibilité et évite les cas de changement répétitifs.
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!