如何检查元素是否没有特定的类?

时间:2011-10-20 19:17:13

标签: jquery jquery-selectors

如何检查是否没有课程。例如,我知道如何检查它是否具有类“test”,但是如何检查它是否没有“test”类?

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

8 个答案:

答案 0 :(得分:411)

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

答案 1 :(得分:131)

sdleihssirhc的答案当然是问题中案例的正确答案,但是如果你需要选择没有某个类的元素作为参考,你可以使用not选择器:< / p>

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

答案 2 :(得分:11)

选择具有类&#34; abc&#34;的元素(或元素组),没有类&#34; xyz&#34;:

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

选择常规CSS时,您可以使用.abc:not(.xyz)

答案 3 :(得分:6)

你可以试试这个:

<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.
});

答案 4 :(得分:5)

使用.not()方法并检查属性:

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

在此处查看:http://jsfiddle.net/AWb79/

答案 5 :(得分:0)

有更复杂的情况,这不起作用。如果要选择A类不包含B类元素的元素,该怎么办? 你最终需要更多的东西:

If parent element does not contain certain child element; jQuery

答案 6 :(得分:0)

通过这个6年后的阅读并认为我也会对它进行攻击,同样在 TIMTOWTDI静脉 ......:D,希望它不是错误的'JS礼仪'。< / p>

我通常会设置一个带有条件的var,然后稍后再参考它.i.e;

// 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) : '' ;

答案 7 :(得分:0)

我不知道为什么,但是被接受的答案对我不起作用。相反,它起作用了:

if ($(this).hasClass("test") !== false) {}