Comment vérifier si un élément n’a pas de classe spécifique?

Comment puis-je vérifier s’il n’y a pas de cours? Par exemple, je sais comment vérifier si elle a la classe “test”, mais comment vérifier si elle n’a pas la classe “test”?

if($(this).hasClass("test")){ } 

 if (!$(this).hasClass("test")) { 

La réponse de sdleihssirhc est bien sûr la réponse correcte pour le cas dans la question, mais juste comme référence si vous devez sélectionner des éléments qui n’ont pas une certaine classe, vous pouvez utiliser le sélecteur not :

 // select all divs that don't have class test $( 'div' ).not( ".test" ); $( 'div:not(.test)' ); // <-- alternative 

Sélectionner un élément (ou un groupe d’éléments) ayant la classe “abc”, n’ayant pas la classe “xyz”:

  $('.abc:not(".xyz")') 

Lorsque vous sélectionnez un .abc:not(.xyz) CSS standard, vous pouvez utiliser .abc:not(.xyz) .

utilisez la méthode .not () et recherchez un atsortingbut:

 $('p').not('[class]'); 

Vérifiez-le ici: http://jsfiddle.net/AWb79/

Vous pouvez essayer ceci:

 
there is a class
there is no class2
$(document).ready(function(){ $("#div2").not('.myClass'); // do not have `myClass` class. });

Il existe des scénarios plus complexes où cela ne fonctionne pas. Que faire si vous voulez sélectionner un élément avec la classe A qui ne contient pas d’éléments avec la classe B. Vous avez besoin de quelque chose de plus comme:

Si l’élément parent ne contient pas certains éléments enfant; jQuery

en lisant ces 6 ans plus tard et en pensant que je prendrais aussi un piratage, également dans la veine TIMTOWTDI …: D, en espérant que ce ne soit pas incorrect “JS etiquette”.

J’ai l’habitude de mettre en place un var avec la condition et puis de s’y référer plus tard..ie;

 // var set up globally OR locally depending on your requirements var hC; function(el) { var $this = el; hC = $this.hasClass("test"); // use the variable in the conditional statement if (!hC) { // } } 

Bien que je devrais mentionner que je fais cela parce que j’utilise principalement l’opérateur ternaire conditionnel et que je veux un code propre. Donc, dans ce cas, tout ce que j’ai, c’est ceci:

 hC ? '' : foo(x, n) ; // OR ----------- !hC ? foo(x, n) : '' ; 

…au lieu de cela:

 $this.hasClass("test") ? '' : foo(x, n) ; // OR ----------- (!$this.hasClass("test")) ? foo(x, n) : '' ;