ホームページ  >  記事  >  ウェブフロントエンド  >  従来の Internet Explorer ブラウザでの getElementsByClassName() の問題を解決する方法

従来の Internet Explorer ブラウザでの getElementsByClassName() の問題を解決する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-22 07:33:30507ブラウズ

How to Overcome getElementsByClassName() Issues in Legacy Internet Explorer Browsers?

従来の Internet Explorer ブラウザにおける getElementsByClassName() の互換性の問題

質問:

以下のコードはインターネットでエラーを発生しますExplorer 6、7、および 8:

var borderTds = document.getElementsByClassName('leftborder');

問題:

IE6、IE7、IE8 などの従来の Internet Explorer ブラウザーは、getElementsByClassName() をネイティブにサポートしていません。方法。このメソッドは、クラス属性に基づいて要素を選択するために使用されます。

解決策:

この問題を解決するには、次の回避策を使用して getElementsByClassName() をエミュレートできます。これらのブラウザの機能:

document.getElementsByClassName = function(cl) {
  var retnode = [];
  var elem = this.getElementsByTagName('*');
  for (var i = 0; i < elem.length; i++) {
    if((' ' + elem[i].className + ' ').indexOf(' ' + cl + ' ') > -1) retnode.push(elem[i]);
  }
  return retnode;
}; 

実装:

  1. スクリプトを HTML ドキュメントにコピーします。
  2. スクリプトの作成後さらに、getElementsByClassName() メソッドを次のように使用できます:
var borderTds = document.getElementsByClassName('leftborder');

利点:

この回避策により、クラスごとに要素を選択できます。 jQuery などの外部ライブラリに依存しない従来の Internet Explorer ブラウザ。

以上が従来の Internet Explorer ブラウザでの getElementsByClassName() の問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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