ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript でクラス名ごとに複数の HTML 要素の表示/非表示を切り替える方法

JavaScript でクラス名ごとに複数の HTML 要素の表示/非表示を切り替える方法

Barbara Streisand
Barbara Streisandオリジナル
2024-11-14 18:06:021020ブラウズ

How to Toggle the Visibility of Multiple HTML Elements by Class Name with JavaScript?

JavaScript を使用してクラス名によって HTML 要素の表示/非表示を切り替える方法

Web ページ上の特定の DIV の表示/非表示を動的に制御したいと考えています。ただし、現在の JavaScript スクリプトは getElementById に依存していますが、DIV は ID ではなくクラス名で識別されるため、これは適切ではありません。

この課題を克服するには、最新のブラウザでサポートされている getElementsByClassName メソッドを利用できます。 。これが包括的な解決策です:

function getElementsByClassName(node, className) {
  if (node.getElementsByClassName) {
    // Native implementation available
    return node.getElementsByClassName(className);
  } else {
    // Use fallback method
    return (function getElementsByClass(searchClass, node) {
      if (!node) node = document;
      var classElements = [],
          els = node.getElementsByTagName("*"),
          pattern = new RegExp("(^|\s)" + searchClass + "(\s|$)");

      for (var i = 0, j = 0; i < els.length; i++) {
        if (pattern.test(els[i].className)) {
          classElements[j] = els[i];
          j++;
        }
      }
      return classElements;
    })(className, node);
  }
}

次に、getElementsByClassName を使用するように切り替えスクリプトを変更できます:

function toggleVisibility(className) {
   var elements = getElementsByClassName(document, className),
       n = elements.length;
   for (var i = 0; i < n; i++) {
     var e = elements[i];

     if (e.style.display == 'block') {
       e.style.display = 'none';
     } else {
       e.style.display = 'block';
     }
  }
}

この更新されたスクリプトを使用すると、複数の DIV の表示/非表示をシームレスに切り替えることができます。同じクラス名。

以上がJavaScript でクラス名ごとに複数の HTML 要素の表示/非表示を切り替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。