Je veux obtenir le nom de la classe en utilisant jQuery
Et s'il a un identifiant
<div class="myclass"></div>
javascript
jquery
X10nD
la source
la source
parents()
.this.className
fonctionne sans jquery (reviendrait"myclass"
dans l'exemple ci-dessus)Réponses:
Après avoir obtenu l'élément en tant qu'objet jQuery par d'autres moyens que sa classe,
devrait faire l'affaire. Pour l'utilisation de l'ID
.attr('id')
.Si vous êtes à l'intérieur d'un gestionnaire d'événements ou d'une autre méthode jQuery, où l'élément est le nœud DOM pur sans wrapper, vous pouvez utiliser:
Les deux sont des méthodes DOM standard et bien prises en charge dans tous les navigateurs.
la source
if(className.indexOf(' ') !== -1){throw new Error('Uh-oh! More than one class name!');}
.attr('class')
et combinez-le avec,if(className.indexOf('Class_I_am_Looking_For') > = 0)
vous pouvez facilement vérifier l'existence d'une classe spécifique et toujours gérer plusieurs classes.if(className.indexOf('Class_I_am_Looking_For') > = 0)
sera également de la partie"This_Is_Not_the_Class_I_am_Looking_For"
Il est préférable de l'utiliser
.hasClass()
lorsque vous souhaitez vérifier si un élément a un particulierclass
. En effet, lorsqu'un élément en a plusieurs,class
il n'est pas trivial de vérifier.Exemple:
Où:
Avec
.hasClass()
nous pouvons tester si lediv
a la classedivhover
.la source
.is('.divhover')
Attention, vous avez peut-être une classe et une sous-classe.
Si vous utilisez des solutions précédentes, vous aurez:
Donc, si vous voulez avoir le sélecteur de classe , procédez comme suit:
et vous aurez
Maintenant, si vous souhaitez sélectionner tous les éléments qui ont la même classe tels que div ci-dessus:
cela signifie
Mise à jour 2018
OU peut être implémenté avec du vanilla javascript en 2 lignes:
la source
'.'+$('#id').attr('class').split(/[ \n\r\t\f]+/).join('.')
, car l' espace, Tab, LF, CR et FF sont autorisés à séparer les classes. (.split()
accepte également RegExps.)'.'+$('#id').attr('class').split(/\s+/).join('.')
serait plus concis, non? Ou cela correspondrait-il à quelque chose auquel je ne pense pas?.attr('class').trim().split(...)
C'est pour obtenir la deuxième classe en plusieurs classes en utilisant un élément
la source
vous pouvez simplement utiliser,
var className = $('#id').attr('class');
la source
Si vous avez
<div>
unid
:...tu peux essayer:
Si vous
<div>
n'enclass
avez qu'un , vous pouvez essayer:la source
Si vous allez utiliser la fonction de fractionnement pour extraire les noms de classe, vous devrez compenser les variations de formatage potentielles qui pourraient produire des résultats inattendus. Par exemple:
produit
Je pense que vous feriez mieux d'utiliser une expression régulière pour faire correspondre un ensemble de caractères autorisés pour les noms de classe. Par exemple:
produit
L'expression régulière n'est probablement pas complète, mais j'espère que vous comprenez mon point. Cette approche atténue la possibilité d'un mauvais formatage.
la source
Pour compléter la réponse de Whitestock (qui est la meilleure que j'ai trouvée), j'ai fait:
Ainsi, pour "myclass1 myclass2", le résultat sera '.myclass1 .myclass2'
la source
Vous pouvez obtenir le nom de classe de deux manières:
OU
la source
Avec Javascript
Avec jQuery
OU
la source
Si vous ne connaissez pas le nom de la classe MAIS vous connaissez l'ID, vous pouvez essayer ceci:
Appelez-le ensuite en utilisant:
la source
Si vous voulez obtenir des classes de div et que vous voulez vérifier si une classe existe, utilisez-la simplement.
par exemple;
la source
Essayez-le
HTML
jQuery
la source
si nous avons un seul
div
élément ou si nous voulons le premier élément, nous pouvons utiliser$('div')[0].className
sinon nous avons besoin d'unid
de cet élémentla source
Si nous avons un code:
pour prendre le nom de classe en utilisant jQuery, nous pourrions définir et utiliser une méthode de plugin simple:
ou
L'utilisation de la méthode sera:
Nous devons remarquer qu'il retournera une liste de classes contrairement à la méthode native element.className qui ne retourne que la première classe des classes attachées. Parce que souvent l'élément a plus d'une classe attachée, je vous recommande de ne pas utiliser cette méthode native mais element.classlist ou la méthode décrite ci-dessus.
La première variante renverra une liste de classes sous forme de tableau, la seconde sous forme de chaîne - noms de classe séparés par des espaces:
Un autre avis important est que les deux méthodes ainsi que la méthode jQuery
retourne uniquement la liste des classes du premier élément capturé par l'objet jQuery si nous utilisons un sélecteur plus commun qui pointe de nombreux autres éléments. Dans un tel cas, nous devons marquer l'élément, nous voulons obtenir ses classes, en utilisant un index, par exemple
Cela dépend aussi de ce que vous devez faire avec ces classes. Si vous souhaitez simplement rechercher une classe dans la liste des classes de l'élément avec cet identifiant, vous devez simplement utiliser la méthode "hasClass":
comme mentionné dans les commentaires ci-dessus. Mais si vous pouvez avoir besoin de prendre toutes les classes comme sélecteur, utilisez ce code:
Le résultat sera:
et vous pourriez l'obtenir pour créer dynamiquement une règle css de réécriture spécifique par exemple.
Cordialement
la source
Cela fonctionne aussi.
la source
Meilleure façon d'obtenir le nom de la classe en javascript ou jquery
attr()
La fonction d'attribut est utilisée pour obtenir et définir l'attribut.la source
utiliser comme ceci: -
si vous avez utilisé cette classe plus d'une fois, utilisez chaque opérateur
la source