【JavaScript】要素のclass属性値を取得、変更、追加する方法まとめ
こんにちは!CODE CLUB965のKです!
今回は、JavaScriptで要素のclass属性の値を取得したり、変更したりする方法について書こうと思います。
方法まとめ
まず、前提として以下のような記述があったとします。
<a class="hoge mofu" id="target">リンク</a>
このclass属性値をいじるには、getElementByIdを使って要素を取得します。
var element = document.getElementById( "target" ) ;
このelement変数を使って、class属性値を取得したり変更したりします。
取得
class属性値を取得するには、classNameプロパティを参照します。
var class_names = element.className ; // "hoge mofu"
変更
class属性値の内容を変更(編集)するには、classNameプロパティの値を変更します。
element.className = "aaa bbb" ; // <a class="aaa bbb" id="target">リンク</a>
確認
class属性値が、その要素に付けられているか否かを確認するには、classListのcontains()を使用します。
var a = element.classList.contains( "hoge" ) ; // true
var b = element.classList.contains( "mofu" ) ; // true
var d = element.classList.contains( "list" ) ; // false
class属性に「hoge」と「mofu」はありますので true となります。
逆に「list」という属性値は存在しないので false となります。
追加
あるclass属性値を要素に追加するのは、classListのadd()を使用します。
既にclass属性値が存在する場合は特に何も起きず、無視されます。
element.classList.add( "aaa", "bbb" ) ; // <a class="hoge mofu aaa bbb" id="target">リンク</a>
上記のように書けばまとめてclass属性値を追加できます。
削除
あるclass属性値を要素から削除する場合、classListのremove()を使用します。
そのclass属性値が存在しない場合は、何も起きず無視されます。
element.classList.add( "hoge" ) ; // <a class="mofu" id="target">リンク</a>
まとめて削除したい場合は、追加の時と同じ要領で記述すればOKです。
削除または追加(切り替え)
あるclass属性値が、存在する場合は「削除」し、存在しない場合は「追加」したいときは、classListのtoggle()を使用します。
// class属性値が、存在する場合は「削除」
element.classList.toggle( "hoge" ) ; // <a class="mofu" id="target">リンク</a>
// class属性値が、存在しない場合は「追加」
element.classList.toggle( "zofu" ) ; // <a class="mofu zofu" id="target">リンク</a>
最後に
今回は、JavaScriptで要素のclass属性の値を取得したり、変更したりする方法についてまとめました。
class属性値だけでもやれることはいろいろあるので、しっかり把握しておきましょう!
それでは、また!