【JavaScript】要素が指定した属性を持っているか判定する【hasAttribute】
※本ページのリンクにはプロモーションが含まれています。
こんにちは、Ryohei(@ityryohei)です!
本記事では、JavaScriptで要素が指定した属性を持っているか判定する方法をご紹介しています。
JavaScriptで要素が属性を持っているかどうかで処理を分岐したいんだけど、良い方法ないかな?
上記の疑問にお答えします。
では、解説していきます。element.hasAttributeで属性を持っているか判定する
hasAttribute
は、要素が指定した属性を持っているか判定することができるelement
のメソッドです。引数に指定した属性を持つかどうかを真偽値(Boolean)で返します。
hasAttribute
の構文は下記の通りです。
//属性を持っているか判定したい要素を取得 const el = document.getElementById('element'); //属性を持っているか真偽値を返す const result = el.hasAttribute('attributeName');
取得したelement
のhasAttribute
を呼び出し、引数に持っているか判定したい属性名を指定します。result
には引数に指定した属性を持っている場合はtrue
が、持っていない場合はfalse
が代入されます。
実際の属性名を指定すると下記のようになります。
const el = document.getElementById('section1'); const result = el.hasAttribute('id');
el
に代入された要素がid
属性を持っている場合はresult
にtrue
が、持っていない場合はfalseが代入されます。実際に使用する場合は三項演算子やif文などで条件分岐して使用するケースが多いかと思います。ですので簡単なものになりますがサンプルスクリプトをご紹介できればと思います。
要素が指定した属性を持っているか判定して処理する
ではサンプルスクリプトを作成します。実装する内容は下記のようにします。
id
を指定して要素を取得する- 要素が
class
を持っているか判定する class
を持っていない場合はadd
というclass
を新しく追加する
上記の内容を実装したスクリプトがこちら!
HTML
<div id="app"> <h1>Into the Program</h1> </div>
JavaScript
const el = document.getElementById('app'); const result = el.hasAttribute('class'); if(!result){ el.setAttribute('class', 'add'); }
下記は上記の内容を反映したデモです。開発ツールで確認していただくと、HTML記述時点では指定していないaddというclassが追加されているかと思います。
See the Pen hasAttribute|JavaScript by ryohei (@intotheprogram) on CodePen.
要素が指定した属性を持っているか判定して処理することができています。
最後に
要素が属性を持っているか判定して次へ進むという処理は、本記事のサンプルでご紹介したようなclassを付与したりといった面で使用することが多いです。hasAttribute
は真偽値を返すという単純な機能ですし、名前もそのままなので使いやすいメソッドです。今後属性を持っているか判定する際にぜひご使用いただければと思います。
以上、JavaScriptで要素が指定した属性を持っているか判定するhasAttributeのご紹介でした!
JavaScriptを基礎からしっかりと学びたい方へ
下記の参考書がおすすめです。私がJavaScript入門時に購入した書籍で、基礎から応用まで多様なサンプルを用いて解説されています。ページ数は多いですが、内容が伴っているのですらすら読めます。腰を据えて学びたい方に最良の一冊となっています。