javascript 指定したクラスを使用しているかを確認する

javascript 指定したクラスを使用しているかを確認する

javascriptで、classList.containsを使用して、指定したクラスを使用しているかを確認するサンプルコードを記述してます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 103.0.5060.66

classList.contains使い方

classList.containsを使用すれば、指定したクラスを使用しているかを確認することが可能です。

<h2 id="foo" class="badge badge-primary"></h2>

<script>

// 要素を取得
let elm = document.getElementById("foo");

// 判定
let result = elm.classList.contains('badge'); 

console.log(result); // true

result = elm.classList.contains('noclass'); 

console.log(result); // false

</script>

また、javascript部はdocument.getElementByIdを省略して「id名」のみで記述することも可能です。

// 判定
let result = foo.classList.contains('badge'); 

console.log(result); // true

result = foo.classList.contains('noclass'); 

console.log(result); // false

「querySelector」を使用して、「matches」で判定することも可能です。

// 要素を取得
let elm = document.querySelector("#foo");

// 判定
let result = elm.matches('.badge'); 

console.log(result); // true

result = elm.matches('.noclass'); 

console.log(result); // false

パフォーマンスは「classList.contains」の方が少しいいです。

実行回数:1000000回 関数名:contains 実行時間:72.7(ms)
実行回数:1000000回 関数名:matches  実行時間:106(ms)

サンプルコード

以下は、
「判定」ボタンをクリックすると、指定した「html」タグに、指定したクラスが使用されているかを判定して結果を表示する
サンプルコードとなります。

※cssには「bootstrap material」を使用してます。

<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <title>mebeeサンプル</title>
  <!-- MDB -->
  <link href="https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/4.2.0/mdb.min.css" rel="stylesheet" />
</head>

<body>

  <div class="container text-center w-50" style="margin-top:150px">

    <h2><span id="foo" class="badge badge-primary">判定結果</span></h2>

    <button onclick="hoge();" type="button" class="btn btn-danger">
      判定
    </button>

  </div>

  <script>

    function hoge() {

      // 要素を取得
      let elm = document.getElementById("foo");

      // 判定
      let result = elm.classList.contains('badge');

      // 結果表示
      elm.textContent = result;

    }

  </script>
</body>

</html>

使用されているのでtrueが表示されていることが確認できます。

javascript部はdocument.getElementByIdを省略できます。

function hoge() { foo.textContent = foo.classList.contains('badge') }