Answers:
if (!$(this).hasClass("test")) {
sdleihssirhc的答案当然是针对该问题的正确答案,但是如果您需要选择没有特定类的元素,则可以作为参考,可以使用not选择器:
// select all divs that don't have class test
$( 'div' ).not( ".test" );
$( 'div:not(.test)' ); // <-- alternative
您可以尝试以下方法:
<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.
});
在更复杂的情况下,这不起作用。如果要选择A类的元素而不包含B类的元素怎么办。您最终需要更多类似的东西:
读完这6年后,我以为我也是TIMTOWTDI .... D 的黑客,希望它不是不正确的“ JS礼节”。
我通常用条件设置一个var,然后稍后再引用它。
// 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) {
//
}
}
尽管我应该提到我这样做是因为我主要使用条件三元运算符并且想要干净的代码。因此,在这种情况下,我所拥有的就是:
hC ? '' : foo(x, n) ;
// OR -----------
!hC ? foo(x, n) : '' ;
...而不是这个:
$this.hasClass("test") ? '' : foo(x, n) ;
// OR -----------
(!$this.hasClass("test")) ? foo(x, n) : '' ;
if($(this).is(":not(.test)"))
> :)