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

use*_*793 212 jquery jquery-selectors

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

if($(this).hasClass("test")){
}
Run Code Online (Sandbox Code Playgroud)

sdl*_*rhc 438

if (!$(this).hasClass("test")) {
Run Code Online (Sandbox Code Playgroud)

  • @Phrogz ......它甚至在语法上都是正确的. (42认同)
  • 在TIMTOWTDI中,这是一个可怕的解决方案:`if($(this).is(":not(.test)"))`> :) (33认同)
  • 如果有人想知道:有多种方法可以做到这一点,但有时候一致性并不是坏事. (21认同)
  • TIMTOWTDIBSCINABTE (6认同)

JJJ*_*JJJ 138

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

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

  • 恕我直言你的答案是最好的.如果sdleihssirhc的答案是正确的,那么这个问题与jQuery无关,并且会更好地表达为'给定某些条件,我如何在Javascript中测试该条件不正确'.我们想要的jQuery是对整个DOM元素集合进行操作,就像在单个对象上一样简单.您的答案提供了解决方案.+1 (8认同)

Geo*_* B. 11

选择具有类"abc"的元素(或元素组),不具有类"xyz":

    $('.abc:not(".xyz")')
Run Code Online (Sandbox Code Playgroud)

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


Mat*_*ira 6

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

$('p').not('[class]');
Run Code Online (Sandbox Code Playgroud)

在这里检查:http : //jsfiddle.net/AWb79/

  • 这是完全错误的。括号不是用于类,而是用于标识属性的选择器。 (7认同)

air*_*aft 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.
});
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试这个。

if (!$(object).hasClass("className")) {


}
Run Code Online (Sandbox Code Playgroud)