概要:このチュートリアルでは、JavaScriptのclassList
プロパティを使用して、要素のCSSクラスを操作する方法を学びます。
JavaScript classListプロパティの紹介
classList
は、要素の読み取り専用プロパティで、CSSクラスのライブコレクションを返します。
const classes = element.classList;
Code language: JavaScript (javascript)
classList
は、要素のclass属性の内容を表すDOMTokenList
オブジェクトです。
classList
は読み取り専用ですが、さまざまなメソッドを使用して、含まれているクラスを操作できます。
JavaScript classListの例
classList
のインターフェースを介して要素のCSSクラスを操作する例をいくつか見てみましょう。
1) 要素のCSSクラスを取得する
main
とred
の2つのクラスを持つdiv
要素があるとします。
<div id="content" class="main red">JavaScript classList</div>
Code language: HTML, XML (xml)
次のコードは、コンソールウィンドウにdiv
要素のクラスリストを表示します。
let div = document.querySelector('#content');
for (let cssClass of div.classList) {
console.log(cssClass);
}
Code language: JavaScript (javascript)
出力
main
red
仕組み
- まず、
querySelector()
メソッドを使用して、IDがcontent
のdiv
要素を選択します。 - 次に、
classList
の要素を反復処理し、コンソールウィンドウにクラスを表示します。
2) 要素のクラスリストに1つ以上のクラスを追加する
要素のクラスリストに1つ以上のCSSクラスを追加するには、classList
のadd()
メソッドを使用します。
たとえば、次のコードは、IDがcontent
のdiv
要素のクラスリストにinfo
クラスを追加します。
let div = document.querySelector('#content');
div.classList.add('info');
Code language: JavaScript (javascript)
次の例では、要素のクラスリストに複数のCSSクラスを追加します。
let div = document.querySelector('#content');
div.classList.add('info','visible','block');
Code language: JavaScript (javascript)
3) 要素のクラスを削除する
要素のクラスリストからCSSクラスを削除するには、remove()
メソッドを使用します。
let div = document.querySelector('#content');
div.classList.remove('visible');
Code language: JavaScript (javascript)
add()
メソッドと同様に、一度に複数のクラスを削除できます。
let div = document.querySelector('#content');
div.classList.remove('block','red');
Code language: JavaScript (javascript)
4) 要素のクラスを置き換える
既存のCSSクラスを新しいクラスに置き換えるには、replace()
メソッドを使用します。
let div = document.querySelector('#content');
div.classList.replace('info','warning');
Code language: JavaScript (javascript)
5) 要素に指定されたクラスがあるかどうかを確認する
要素に指定されたクラスがあるかどうかを確認するには、contains()
メソッドを使用します。
let div = document.querySelector('#content');
div.classList.contains('warning'); // true
Code language: JavaScript (javascript)
contains()
メソッドは、classList
に指定されたクラスが含まれている場合はtrue
を返し、そうでない場合はfalse
を返します。
6) クラスを切り替える
要素のクラスリストに指定されたクラス名が含まれている場合、toggle()
メソッドはそれを削除します。クラスリストにクラス名が含まれていない場合、toggle()
メソッドはそれをクラスリストに追加します。
次の例では、toggle()
メソッドを使用して、IDがcontent
の要素のvisible
クラスを切り替えます。
let div = document.querySelector('#content');
div.classList.toggle('visible');
Code language: JavaScript (javascript)
まとめ
- 要素の
classList
プロパティは、要素のCSSクラスのライブコレクションを返します。 add()
メソッドとremove()
メソッドを使用して、要素のクラスリストにCSSクラスを追加したり、CSSクラスを削除したりします。replace()
メソッドを使用して、既存のクラスを新しいクラスに置き換えます。contains()
メソッドを使用して、要素のクラスリストに指定されたクラスが含まれているかどうかを確認します。toggle()
メソッドを使用して、クラスを切り替えます。