Quelle est la meilleure façon de vérifier si un élément a une classe?
Le problème
Si l'élément a plusieurs classes, alors elle ne sera pas correspondre à la valeur de la propriété de la vérification, donc je suis à la recherche de la meilleure façon de vérifier si l'objet a une classe en particulier dans l'élément de la propriété className.
Exemple
//element's classname is 'hello world helloworld'
var element = document.getElementById('element');
//this obviously fails
if(element.className == 'hello'){ ... }
//this is not good if the className is just 'helloworld' because it will match
if(element.className.indexOf('hello') != -1){ ... }
Alors quelle serait la meilleure façon de le faire?
juste pur javascript, veuillez
- Vous pouvez utiliser des regex pour le nom complet de la classe. Pour les regex, vous pouvez vous référer à cette stackoverflow.com/questions/2232934/...
- double possible de Tester si un élément contient une classe? - s'il vous plaît utiliser la fonction de recherche avant de poser une nouvelle question.
Vous devez vous connecter pour publier un commentaire.
hasClass
fonctionne en arrière-plan..className
valeur première. Cela pourrait échouer si un onglet ou une autre caractère d'espace a été utilisé pour séparer les classes.Dans les navigateurs modernes, vous pouvez utiliser classList:
Dans le navigateur qui n'est pas de mettre en œuvre
classList
mais expose les DOM prototype, vous pouvez utiliser la cale a montré dans le lien.Sinon, vous pouvez utiliser la même cale du code pour avoir une fonction générique sans manipuler le prototype.
ce 2018 utilisation ES6
Comment utiliser
Vous demandez pur javascript, donc, c'est comment jQuery en œuvre:
rclass
est une expression régulière de[\n\t\r]
, pour s'assurer que les méthodes de délimitation des noms de classe ne sont pas un problème.this
serait de jQuery référence à l'objet(s) et dans un sens, elle rend le code plus compliqué que nécessaire, mais il doit faire sens, sans en connaître les détails.this
référence? où estrclass
défini?Cela devrait fonctionner pour vous:
Ce code va parcourir le DOM et la recherche de classes défini comme paramètre dans la fonction principale.Ensuite, il permettra de tester chaque fondée éléments de classe avec une expression régulière pattern. Si il fonde pousser à un tableau, et affichera les résultats.
D'abord, diviser la classe en utilisant le "caractère", puis vérifiez l'indice de la classe que vous souhaitez trouver.
indexOf
n'est pas pris en charge pour les tableaux).