言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

JavaScript辞典

  1. トップページ
  2. JavaScript辞典
  3. HTML要素.classList

HTML要素.classList 対応: ES6(ECMAScript 2015)

HTML要素のクラス属性を操作するためのプロパティです。クラスの追加・削除・切り替え・存在確認を行うメソッドが用意されています。

構文

// クラスを追加します。
element.classList.add("クラス名");

// クラスを削除します。
element.classList.remove("クラス名");

// クラスが存在すれば削除し、なければ追加します。
element.classList.toggle("クラス名");

// クラスの存在確認
var result = element.classList.contains("クラス名");

メソッド一覧

メソッド概要
add("クラス名")指定したクラスを追加します。すでに存在する場合は何も起きません。複数のクラスをカンマ区切りで同時に追加することもできます。
remove("クラス名")指定したクラスを削除します。存在しないクラスを指定してもエラーにはなりません。複数のクラスをカンマ区切りで同時に削除することもできます。
toggle("クラス名")指定したクラスが存在すれば削除し、存在しなければ追加します。メニューの開閉やアクティブ状態の切り替えなどに便利です。
contains("クラス名")指定したクラスが存在するかどうかを『true』または『false』で返します。

サンプルコード

<div id="box" class="panel">ボックス</div>
<button id="btn">切り替え</button>
var box = document.querySelector("#box");

// クラスを追加します。
box.classList.add("active");
// class="panel active"

// クラスの存在確認
console.log(box.classList.contains("active")); // 『true』と出力されます。

// ボタンクリックでクラスを切り替えます。
var btn = document.querySelector("#btn");
btn.addEventListener("click", function() {
	box.classList.toggle("highlight");
});

// 複数のクラスを同時に追加します。
box.classList.add("rounded", "shadow");

// クラスを削除します。
box.classList.remove("panel");

概要

『HTML要素.classList』はHTML要素のクラス属性を安全かつ簡単に操作するためのプロパティです。従来は『HTML要素.className』プロパティで文字列を直接操作する必要がありましたが、『HTML要素.classList』のメソッドを使うことで、個別のクラスの追加・削除が容易になりました。

特に『toggle()』メソッドはUIの状態切り替えに便利です。メニューの開閉、タブのアクティブ切り替え、ダークモードの切り替えなど、「ある状態とない状態を交互に切り替える」処理を1行で記述できます。

『add()』と『remove()』は存在しないクラスの追加・削除を行ってもエラーが発生しないため、事前にクラスの存在を確認する必要がありません。

対応ブラウザ

Chrome Chrome
49 以降
21 ×
20
19
18
17
16
13
12
11
10
9
8
↑ 部分的に対応
7 以前 ×
Firefox Firefox
57 以降
3.5 以前 ×
Safari Safari
18 以降
6 以前 ×
Edge Edge
80 以降
15 ×
14
13
12
↑ 部分的に対応
11 以前 ×
IE IE
11
10
↑ 部分的に対応
9 以前 ×
Opera Opera
48 以降
11 以前 ×
iOS Safari iOS Safari
18 以降
6 以前 ×
Android Browser Android Browser
37 以降
4 ×
3.4
3
↑ 部分的に対応
2.4 以前 ×
Chrome Android Chrome Android
36 以降
24 以前 ×
Firefox Android Firefox Android
79 以降
3 以前 ×

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。