[jquery] 요소에 특정 클래스가 없는지 확인하는 방법은 무엇입니까?

수업이 없는지 어떻게 확인하나요? 예를 들어, “test”클래스가 있는지 확인하는 방법을 알고 있지만 “test”클래스가 없는지 어떻게 확인합니까?

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



답변

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


답변

sdleihssirhc의 대답은 물론 문제의 경우에 맞는 대답이지만 특정 클래스가없는 요소를 선택 해야하는 경우 참고로 not 선택기를 사용할 수 있습니다 .

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


답변

“xyz”클래스가 아닌 “abc”클래스를 가진 요소 (또는 요소 그룹)를 선택하십시오.

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

일반 CSS를 선택할 때 사용할 수 있습니다 .abc:not(.xyz).


답변

.not () 메소드를 사용하고 속성을 확인하십시오.

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

여기에서 확인하십시오 : http://jsfiddle.net/AWb79/


답변

당신은 이것을 시도 할 수 있습니다 :

<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의 요소가 포함되지 않은 클래스 A의 요소를 선택하려면 어떻게해야합니까?

부모 요소에 특정 자식 요소가없는 경우 jQuery


답변

이 6 년 후를 읽고 TIMTOWTDI vein … : 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) : '' ;