getElementsByClassName() のブラウザー間互換性
IE6、IE7、および IE8 では getElementsByClassName() メソッドを利用できないため、クラス属性に基づいて要素を選択しようとするときのチャレンジ。ただし、jQuery などのサードパーティ ライブラリに依存せずにこの制限を克服できるソリューションがあります。
古い Internet Explorer で getElementsByClassName() をエミュレートする
機能を模倣するにはIE6 ~ 8 の getElementsByClassName() の場合、次のスクリプトを実装できます:
<code class="javascript">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; };</code>
使用法:
このスクリプトを Web サイトに含めるだけで、 Internet Explorer の古いバージョンを含むすべての主要なブラウザで動作する getElementsByClassName() メソッドを使用してドキュメント オブジェクトを拡張します。
例:
<code class="html"><html> <head> <script src="getElementsByClassName.js"></script> ... </head> <body> <div class="red-border"></div> ... var borderDivs = document.getElementsByClassName('red-border'); </body> </html></code>
以上が古い Internet Explorer で getElementsByClassName() をエミュレートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。