[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)
.
답변
답변
당신은 이것을 시도 할 수 있습니다 :
<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의 요소를 선택하려면 어떻게해야합니까?
답변
이 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) : '' ;