Internet Explorer で getElementsByClassName() を使用する方法

Mary-Kate Olsen
リリース: 2024-11-05 19:15:02
オリジナル
296 人が閲覧しました

How to Use getElementsByClassName() in Internet Explorer?

IE での document.getElementsByClassName の互換性

Internet Explorer では、document を使用して特定のクラスを持つ要素の配列を取得しようとすると問題が発生します.getElementsByClassName()。この制限を克服するには、カスタム ソリューションが必要です。

Jonathan Snook のメソッド

IE で document.getElementsByClassName() をエミュレートする 1 つのアプローチは、Jonathan Snook の関数を利用することです。 getElementsByTagName(*) を使用してノード内のすべての要素を反復処理し、目的のクラスの存在に基づいて要素をフィルタリングします。

IE の互換性

Snook のソリューションを実装しているにもかかわらず、 IE では「オブジェクトはこのプロパティまたはメソッドをサポートしていません」というエラーが依然として発生することがあります。これは、getElementsByClassName() が IE のドキュメント オブジェクトの直接メソッドではないためです。

修正された実装

Snook 関数の正しい実装には、ターゲット ノードを明示的に指定する必要があります。 :

var tabs = getElementsByClassName(document.body, 'tab');
ログイン後にコピー

IE8 サポート

IE8 以降のバージョンでは、簡略化されたアプローチを利用できます:

if (!document.getElementsByClassName) {
    document.getElementsByClassName = function(className) {
        return this.querySelectorAll("." + className);
    };
    Element.prototype.getElementsByClassName = document.getElementsByClassName;
}
ログイン後にコピー

このコード スニペットは次のように定義しますgetElementsByClassName() をドキュメント オブジェクトのメソッドとして使用し、Element.prototype.getElementsByClassName() を通じて個々の要素でも利用できるようにします。

使用法

実装されると、 getElementsByClassName() メソッドは次のように使用できます:

var tabs = document.getElementsByClassName('tab');
ログイン後にコピー

以上がInternet Explorer で getElementsByClassName() を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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