Pre-querySelectorAll ブラウザで属性によって要素を取得する方法

Mary-Kate Olsen
リリース: 2024-10-31 20:22:01
オリジナル
355 人が閲覧しました

How to Retrieve Elements by Attributes in Pre-querySelectorAll Browsers?

Pre-querySelectorAll ブラウザでの属性による要素の取得

IE9 より前のブラウザには強力な querySelectorAll() メソッドがないため、要素に基づいて要素を取得する必要がある場合に課題が生じます。特定の属性。これに対処するために、IE7 以降で動作するネイティブ ソリューションを検討してみましょう。

getElementsByTagName と属性チェックの使用

getElementsByTagName メソッドを利用して、querySelectorAll の機能をシミュレートできます。特定の属性を持つ要素を検索する getAllElementsWithAttribute という関数を作成しましょう。

<code class="js">function getAllElementsWithAttribute(attribute) {
  var matchingElements = [];
  var allElements = document.getElementsByTagName('*');
  for (var i = 0, n = allElements.length; i < n; i++) {
    if (allElements[i].getAttribute(attribute) !== null) {
      // Element has the attribute. Add it to the array.
      matchingElements.push(allElements[i]);
    }
  }
  return matchingElements;
}</code>
ログイン後にコピー

この関数は属性名を引数として受け取り、ドキュメント内のすべての要素を反復処理します。各要素について、指定された属性が存在し、null でないかどうかがチェックされます。存在する場合、その要素は一致する要素の配列に追加されます。

使用例

data-foo 属性を持つすべての要素を取得するには、単に次を呼び出します:

<code class="js">getAllElementsWithAttribute('data-foo');</code>
ログイン後にコピー

このアプローチは、querySelectorAll のないブラウザーで属性によって要素を取得するためのネイティブ ソリューションを提供し、IE7 以降との互換性を確保します。

以上がPre-querySelectorAll ブラウザで属性によって要素を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!