ホームページ  >  記事  >  ウェブフロントエンド  >  document.getElementsByClassName を Internet Explorer で動作させるにはどうすればよいですか?

document.getElementsByClassName を Internet Explorer で動作させるにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-06 00:45:02831ブラウズ

How to Make document.getElementsByClassName Work in Internet Explorer?

document.getElementsByClassName と Internet Explorer の互換性

document.getElementsByClassName メソッドは、特定のクラスの要素を取得する便利な方法を提供します。ただし、Internet Explorer (IE) との互換性の問題に直面しています。

Jonathan Snook の解決策

この問題に対処する一般的なアプローチの 1 つは、Jonathan Snook のカスタム関数 getElementsByClassName を使用することです。 。この関数は正規表現を利用して、目的のクラス名を持つ要素を検索します。

ただし、IE では、このソリューションでも、不正な呼び出しによりエラーが発生する可能性があります。この関数は次のように呼び出す必要があります:

function getElementsByClassName(node, classname) {...}

tabs = getElementsByClassName(document.body, 'tab');

代わりに:
document.getElementsByClassName(document.body, 'tab');

その他の互換オプション

IE8 以降をサポートする場合で十分な場合は、次のポリフィルを実装できます。 document.getElementsByClassName:
if (!document.getElementsByClassName) {
    document.getElementsByClassName = function (className) {
        return this.querySelectorAll('.' + className);
    };

    Element.prototype.getElementsByClassName = document.getElementsByClassName;
}

tabs = document.getElementsByClassName('tab');

結論

Jonathan Snook の関数の呼び出しを調整するか、提供されているポリフィルを使用することで、document.getElementsByClassName の互換性の問題を解決できます。つまり

以上がdocument.getElementsByClassName を Internet Explorer で動作させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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