2011-07-28 12 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 
関連する問題