1

私は自分のウェブサイトで奇妙なことが起こっていることに気づいていたので、これに遭遇したときにファイルを調べていました:

if( typeof document.getElementsByClassName != 'function' ) {
    document.getElementsByClassName = function(classname) {
        var node = document.body;
        var a = [];
        var re = new RegExp('(^| )'+classname+'( |$)');
        var els = node.getElementsByTagName("*");
        for(var i=0,j=els.length; i<j; i++)
            if(re.test(els[i].className))a.push(els[i]);
                return a;
    }
}

これが何をしているのか誰か知っていますか?

4

1 に答える 1

4

あなたのコードは、オブジェクトのdocument.getElementsByClassNameメソッドの単純な実装です。documentこれは標準的な方法ですが、古いブラウザー (古い IE バージョンなど) では定義されていません。

if( typeof document.getElementsByClassName != 'function' ) {

この部分は、メソッドの型が関数ではない (定義されていない) かどうかをチェックし、そうであれば後で定義します。

このメソッドを使用すると、次のように、クラス名を使用してドキュメントから DOM 要素を選択できます。

<div class="box"></div>
document.getElementsByClassName('box')
于 2013-11-05T12:59:21.693 に答える