[jQuery] 属性が存在するかどうかチェックするコード

公開

スポンサーリンク

jQueryでhtmlタグに任意の属性が存在するかどうかを確認する方法のメモです。チェックボックスがチェックされているかどうかを確認するときなどに役立ちます。

jQueryにはhasClass()というクラスが存在するかどうか調べるメソッドがあります。だから属性の有無を調べるhasAttr()もあるだろうと思い込んでいたのですが無いんですね。つまり以下で紹介するのはhasAttr()を実現する方法でもあります。

<input id='target' type='checkbox'>

<script>
var attr = $("#target").attr("checked");
if( typeof attr !== 'undefined' && attr !== false ){
   //チェックされていた場合の処理
}else{
   //チェックされていなかった場合の処理
}
</script>

以上で対象タグの指定した属性の存在が確認できます。この場合はIDがtargetという名前のエレメントにcheckedという属性が存在しているかどうかを調べています。

実際はここまで念入りにやらなくとも、以下のコードでも大丈夫でしょうが、上に紹介したものの方がより確実だと思います。

if( $("#target").attr("checked") ){
   //チェックされていた場合の処理
}else{
   //チェックされていなかった場合の処理
}

前者のコードはStack Overflowの質問を参考にさせていただきました。ありがたいことです。

スポンサーリンク


Comment


  1. shimizu : 投稿日:2013年7月25日 6:23 PM

    参考になりました
    ありがとうございます。

  2. ななし : 投稿日:2016年3月10日 6:58 PM

    ‘undefined’ ?????