Jquery en face de.hasClass ()?

j'utilise hasClass () pour vérifier dans mon IF si un élément a une classe donnée. Comment puis-je vérifier dans ma déclaration si un élément n'a pas une classe donnée? Merci d'avance pour vos réponses. Acclamation. Marc.

24
demandé sur Marc 2012-01-22 17:30:49
la source

6 ответов

pourquoi pas simplement:

if (!el.hasClass ('foo'))
{

}
60
répondu James McLaughlin 2012-01-22 17:31:48
la source

Plus généralement en javascript, pour vérifier l'opposé d'un résultat booléen, utilisez PAS l'opérateur logique !:

var isValid = false;
if (!isValid) {
    // execute if isValid = false;
}

Pour ta question, .hasClass() retourne un booléen si l'élément a de la classe spécifiée, donc si vous avez l'expression:

<div class="someClass"></div>

if ($('div').hasClass('someClass')) {
    // will execute
}

pour vérifier si elle n'a pas que de la classe:

if (!$('div').hasClass('someClass')) {
    // will not get here because our element has the class "someClass"
}

lors de la sélection des éléments, si vous voulez éviter ceux qui ont une certaine classe, vous pouvez utiliser le :not() pseudo-sélecteur:

$('div:not(.someClass)')

A propos du sélecteur: not ()

19
répondu Didier Ghys 2012-01-22 17:40:04
la source
if (!element.hasClass('classname')) {
    ...
}
6
répondu fivedigit 2012-01-22 17:31:40
la source

Vous pouvez utiliser

el.is('.oneClass:not(.secondClass)')

si vous avez besoin, cochez plus d'une classe ou

el.is(':not(.secondClass)')

si vous avez besoin, cochez une seule classe.

2
répondu user4174014 2014-10-23 17:59:00
la source

Pour utiliser chaning, vous pouvez utiliser le filtre.

$(...some selector...).filter(function (){ 
    return !$(this).hasClass('yourclass');
}).each-or-do-more
0
répondu DanSolo 2012-10-20 02:24:36
la source
if (!($('class/id/objct').hasClass('class name'))) {
       //codes here...
 }
0
répondu Sebin Simon 2014-09-10 09:22:56
la source

Autres questions sur