Wie überprüfe ich, ob es keine Klasse gibt? Ich weiß zum Beispiel, wie ich überprüfen kann, ob die Klasse "test" vorhanden ist, aber wie kann ich überprüfen, ob die Klasse "test" nicht vorhanden ist?
if($(this).hasClass("test")){
}
Wie überprüfe ich, ob es keine Klasse gibt? Ich weiß zum Beispiel, wie ich überprüfen kann, ob die Klasse "test" vorhanden ist, aber wie kann ich überprüfen, ob die Klasse "test" nicht vorhanden ist?
if($(this).hasClass("test")){
}
Antworten:
if (!$(this).hasClass("test")) {
Die Antwort von sdleihssirhc ist natürlich die richtige für den Fall in der Frage, aber nur als Referenz, wenn Sie Elemente auswählen müssen, die keine bestimmte Klasse haben, können Sie den Not- Selektor verwenden:
// select all divs that don't have class test
$( 'div' ).not( ".test" );
$( 'div:not(.test)' ); // <-- alternative
Wählen Sie ein Element (oder eine Gruppe von Elementen) mit der Klasse "abc" und nicht mit der Klasse "xyz" aus:
$('.abc:not(".xyz")')
Bei der Auswahl von normalem CSS können Sie verwenden .abc:not(.xyz)
.
Verwenden Sie die Methode .not () und suchen Sie nach einem Attribut:
$('p').not('[class]');
Überprüfen Sie es hier: http://jsfiddle.net/AWb79/
Sie können dies versuchen:
<div id="div1" class="myClass">there is a class</div>
<div id="div2"> there is no class2 </div>
$(document).ready(function(){
$("#div2").not('.myClass'); // do not have `myClass` class.
});
Es gibt komplexere Szenarien, in denen dies nicht funktioniert. Was ist, wenn Sie ein Element mit Klasse A auswählen möchten, das keine Elemente mit Klasse B enthält? Am Ende benötigen Sie etwas mehr wie:
Wenn das übergeordnete Element ein bestimmtes untergeordnetes Element nicht enthält; jQuery
Ich las diese 6 Jahre später durch und dachte, ich würde es auch versuchen, auch im Sinne von TIMTOWTDI ...: D, in der Hoffnung, dass es nicht die falsche 'JS-Etikette' ist.
Normalerweise richte ich eine Variable mit der Bedingung ein und beziehe mich später darauf.
// 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) {
//
}
}
Obwohl ich erwähnen sollte, dass ich dies tue, weil ich hauptsächlich den bedingten ternären Operator verwende und sauberen Code möchte. In diesem Fall hätte ich nur Folgendes:
hC ? '' : foo(x, n) ;
// OR -----------
!hC ? foo(x, n) : '' ;
...an Stelle von:
$this.hasClass("test") ? '' : foo(x, n) ;
// OR -----------
(!$this.hasClass("test")) ? foo(x, n) : '' ;
Ich weiß nicht warum, aber die akzeptierte Antwort hat bei mir nicht funktioniert. Stattdessen funktionierte dies:
if ($(this).hasClass("test") !== false) {}
if($(this).is(":not(.test)"))