ホームページ > ウェブフロントエンド > jsチュートリアル > HTML 要素内のクラスの存在を効率的に判断するにはどうすればよいでしょうか?

HTML 要素内のクラスの存在を効率的に判断するにはどうすればよいでしょうか?

Susan Sarandon
リリース: 2024-11-15 20:24:03
オリジナル
491 人が閲覧しました

How Can You Efficiently Determine Class Presence in HTML Elements?

要素内のクラスの存在の決定

要素のクラス メンバーシップを識別することは、CSS スタイル設定と動的 HTML 操作にとって重要です。 JavaScript には要素の className 属性を取得するメソッドが用意されていますが、複数のクラスを扱う場合、その存在を確認することが課題となります。

既存のアプローチ:

現在、一般的なアプローチには次のようなものがあります。 :

switch (testClass) {
  case "class1":
    test.innerHTML = "I have class1";
    break;
  // ...
  default:
    test.innerHTML = "";
}
ログイン後にコピー

ただし、要素に複数のクラスがある場合、このメソッドは完全に一致するだけなので不十分です。 match.

element.classList.contains の使用:

よりカスタマイズされた解決策は、element.classList.contains メソッドを利用することです:

element.classList.contains(class);
ログイン後にコピー

このメソッドはすべての最新ブラウザでサポートされており、クラスを検証する簡潔な方法を提供します。

indexOf を使用したカスタム関数:

classList をサポートしていない古いブラウザの場合、indexOf を使用したカスタム関数を使用できます:

function hasClass(element, className) {
    return (' ' + element.className + ' ').indexOf(' ' + className+ ' ') > -1;
}
ログイン後にコピー

この関数は、指定されたクラスが、たとえ別のクラスの一部であっても、要素の className 属性内にあることを保証します。 name.

ループを使用した代替アプローチ:

この機能を switch ステートメントと組み合わせたい場合は、潜在的なクラス名の配列をループできます:

var test = document.getElementById("test");
var classes = ['class1', 'class2', 'class3', 'class4'];

test.innerHTML = "";

for(var i = 0, j = classes.length; i < j; i++) {
    if(hasClass(test, classes[i])) {
        test.innerHTML = "I have " + classes[i];
        break;
    }
}
ログイン後にコピー

このアプローチにより、柔軟性が向上し、繰り返しの切り替えケースが回避されます。

以上がHTML 要素内のクラスの存在を効率的に判断するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート