classListプロパティを使って要素にクラスを追加する方法

2024-04-02

JavaScriptで要素にクラスを追加するには、主に以下の3つの方法があります。

  1. classList プロパティを使う
  2. className 属性を直接操作する
  3. setAttribute() メソッドを使う

classList プロパティは、要素のクラス属性を操作するための便利なプロパティです。このプロパティを使うと、以下のメソッドを使って簡単にクラスを追加できます。

  • add() メソッド:要素にクラスを追加します。
  • toggle() メソッド:要素にクラスが存在する場合は削除し、存在しない場合は追加します。

const element = document.getElementById("my-element");

// クラス "active" を追加
element.classList.add("active");

// クラス "active" を削除
element.classList.remove("active");

// クラス "active" が存在する場合は削除し、存在しない場合は追加
element.classList.toggle("active");

className 属性を直接操作することで、要素のクラスを追加することもできます。ただし、この方法を使う場合は、空白文字や重複するクラス名などに注意する必要があります。

const element = document.getElementById("my-element");

// クラス "active" を追加
element.className += " active";

// クラス "active" を削除
element.className = element.className.replace(" active", "");

setAttribute() メソッドを使って、class 属性の値を設定することで、要素にクラスを追加することもできます。

const element = document.getElementById("my-element");

// クラス "active" を追加
element.setAttribute("class", "active");

上記の3つの方法の中で、一般的には classList プロパティを使うのが最も簡単で効率的です。ただし、IE9 などの古いブラウザでは classList プロパティがサポートされていないため、その場合は className 属性を直接操作するなどの方法を使う必要があります。




<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>サンプルコード</title>
</head>
<body>
  <div id="my-element">要素</div>

  <script>
  const element = document.getElementById("my-element");

  // 方法1: classList プロパティを使う

  // クラス "active" を追加
  element.classList.add("active");

  // 方法2: className 属性を直接操作する

  // クラス "active" を追加
  element.className += " active";

  // 方法3: setAttribute() メソッドを使う

  // クラス "active" を追加
  element.setAttribute("class", "active");
  </script>
</body>
</html>

このコードを実行すると、#my-element 要素にクラス "active" が追加されます。

  • クラス "active" を要素に存在する場合は削除し、存在しない場合は追加する
element.classList.toggle("active");
  • 複数のクラスを要素に追加する
element.classList.add("active", "disabled");
  • 要素からすべてのクラスを削除する
element.classList.remove();



JavaScriptで要素にクラスを追加するその他の方法

jQueryは、JavaScriptをより簡単に操作するためのライブラリです。jQueryを使うと、以下のコードのように簡単に要素にクラスを追加できます。

$("#my-element").addClass("active");
$("my-element").addClassName("active");

自作の関数を使う

上記の方法以外にも、自作の関数を使って要素にクラスを追加することもできます。

function addClass(element, className) {
  if (!element.classList.contains(className)) {
    element.classList.add(className);
  }
}

const element = document.getElementById("my-element");

addClass(element, "active");
  • jQueryやPrototype.jsなどのライブラリをすでに使っている場合は、そのライブラリのメソッドを使うのが最も簡単です。
  • ライブラリを使いたくない場合は、classList プロパティを使うのが最も効率的です。
  • より複雑な処理を行う場合は、自作の関数を使うことができます。

javascript dom-manipulation


JavaScript、HTML、Firefoxで要素がビューポート内に表示されているかどうかを確認する方法

JavaScript、HTML、Firefoxを用いて、DOM要素が現在のビューポートに表示されているかどうかを確認するには、いくつかの方法があります。getBoundingClientRect() メソッドは、DOM要素の四角形領域の情報を取得できます。この情報を使って、要素がビューポート内に収まっているかどうかを判断できます。...


JavaScriptでスタックとキューをマスターしよう!初心者向けチュートリアル

スタックとキューは、コンピュータサイエンスにおいて重要なデータ構造です。それぞれ異なる動作を持ち、様々な場面で利用されています。このチュートリアルでは、JavaScriptを使って、スタックとキューをどのように実装できるのかを解説します。スタックは、**後入れ先出し(LIFO)**と呼ばれる動作を持ちます。つまり、最後に追加された要素が最初に取り出される構造です。...


JavaScript、HTML、Canvasでキャンバスをクリアして再描画する方法

まず、HTMLファイルにCanvas要素を追加する必要があります。id属性は、JavaScriptからCanvas要素を取得するために使用されます。 widthとheight属性は、Canvas要素の幅と高さをピクセル単位で指定します。次に、JavaScriptファイルでCanvas要素を取得し、描画コンテキストを取得する必要があります。...


JavaScriptで科学計算と数値計算: Node.jsにおけるNumPyライブラリ代替ソリューション

NumPyは、Pythonにおける科学計算と数値計算のための基盤となるライブラリです。多次元配列の操作、線形代数演算、高速フーリエ変換などの機能を提供します。Node. jsは、JavaScriptをランタイム環境として実行するサーバーサイドプラットフォームです。近年、データ分析や機械学習などの分野でNode...


【React初心者向け】useContext でコンテキストの値を変更する方法を徹底解説

React の useContext フックは、コンポーネント階層全体で状態やその他のデータを共有するための便利なツールです。コンテキストプロバイダーを使用して値をラップし、useContext フックを使用して子コンポーネントでアクセスできます。しかし、デフォルトでは、useContext で取得した値は変更できません。...