Como verifico se não há uma aula. Por exemplo, eu sei como verificar se ela tem a classe "test", mas como faço para verificar se ela não tem a classe "test"?
if($(this).hasClass("test")){
}
Como verifico se não há uma aula. Por exemplo, eu sei como verificar se ela tem a classe "test", mas como faço para verificar se ela não tem a classe "test"?
if($(this).hasClass("test")){
}
Respostas:
if (!$(this).hasClass("test")) {
A resposta de sdleihssirhc é, obviamente, a correta para o caso da pergunta, mas apenas como referência, se você precisar selecionar elementos que não têm uma determinada classe, poderá usar o seletor not :
// select all divs that don't have class test
$( 'div' ).not( ".test" );
$( 'div:not(.test)' ); // <-- alternative
Selecione o elemento (ou grupo de elementos) com a classe "abc", sem a classe "xyz":
$('.abc:not(".xyz")')
Ao selecionar CSS regular, você pode usar .abc:not(.xyz)
.
use o método .not () e verifique se há um atributo:
$('p').not('[class]');
Verifique aqui: http://jsfiddle.net/AWb79/
Você pode tentar isso:
<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.
});
Existem cenários mais complexos em que isso não funciona. E se você quiser selecionar um elemento da classe A que não contenha elementos da classe B. Você acaba precisando de algo mais como:
Se o elemento pai não contiver determinado elemento filho; jQuery
lendo esses 6 anos depois e pensei que eu também daria uma olhada nele, também na veia TIMTOWTDI ...: D, esperando que não fosse uma 'etiqueta JS' incorreta.
Eu costumo configurar um var com a condição e depois refiro-o mais tarde .. ou seja;
// 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) {
//
}
}
Embora eu deva mencionar que faço isso porque uso principalmente o operador ternário condicional e quero código limpo. Então, neste caso, tudo que eu teria é o seguinte:
hC ? '' : foo(x, n) ;
// OR -----------
!hC ? foo(x, n) : '' ;
... em vez disso:
$this.hasClass("test") ? '' : foo(x, n) ;
// OR -----------
(!$this.hasClass("test")) ? foo(x, n) : '' ;
Não sei por que, mas a resposta aceita não funcionou para mim. Em vez disso, funcionou:
if ($(this).hasClass("test") !== false) {}
if($(this).is(":not(.test)"))
> :)