2011-07-28 2 views
8

.attr('class')이 있는지 어떻게 알 수 있습니까?Attr 클래스가 있는지 jQuery에서 확인 하시겠습니까?

이 코드를 사용하고 있습니다 :

if(jQuery(this).attr('class') != undefined && jQuery(this).hasClass('myclass')) { 
    //Do something 
} 

작동하지 않습니다.

+3

왜 attr 클래스가 있는지 확인하는 이유가 궁금합니다. 'hasClass'는 그것이 클래스를 가지고 있는지를 검사 할 것이고 대개는 충분합니다 – locrizak

+0

그러나 그것이'undefined'인지를 검사 할 것입니까? – Tom

+0

@Tom :이 기능은 말하고있는 것을 수행하고 있습니다. 'class' 속성이 존재하지 않거나 비어 있다면, 분명히 요소는 그 클래스를 갖지 않습니다. 왜 그냥 시도하지 않는 : http://jsfiddle.net/sP9YR/ –

답변

20

원하는 것에 따라 다릅니다. 사용

<div class></div> 
<div class=""></div> 
<div class="abc"></div> 

그렇다면 : 같은, 당신이 요소가 class 속성을 가지고 있는지 확인 하시겠습니까

당신이 요소는 특정 클래스가 있는지 확인하려는 경우
if ($('div').attr('class') != undefined)... 

, 사용

if ($('div').hasClass('abc'))... 
+0

만약 내가 둘 다 확인하고 싶습니까? 또는'hasClass'는 이것을 암묵적으로 어떻게합니까? – Tom

+2

예, 요소에 class 속성이없고 $ (...). hasClass ('abc')와 같이하면 자동으로 false가 반환됩니다. – Abraham

0

속성 클래스가없는 경우의 반환 값은 null 또는 빈 문자열입니다.

0

을이 코드가 실제로 작동 : fiddle

HTML :

,
<div></div> 
<div class="myclass"></div> 
<div class="blah"></div> 
<div></div> 
<div class="myclass"></div> 
<div class="myclass"></div> 
<div></div> 
<div class="myclass andAnotherClass"></div>​ 

JS :

$("div").each(function(){ 
if(jQuery(this).attr('class') != undefined && jQuery(this).hasClass('myclass')) { 
    jQuery(this).html("I have it"); 
     } else { 
      jQuery(this).html("I don't have it"); 
     } 
});​ 
1

이 시도 .. 어떤 클래스 요소가 존재하는 경우

if(jQuery('#id1').attr('class') =="") { 
     alert($('#id1').attr('class')); 
    } 

<div id="id1">test</div>

1

당신은 '길이를 호출하여 확인하실 수 있습니다 'jquery 객체에.

$('.myclass').length 
관련 문제