7

javascript で同じクラス名を使用してすべての要素を選択するにはどうすればよいですか。私はそれを使用できることを知っていますdocument.getElementsByClassNameが、クロスブラウザではないことをどこかで読んだので、jQueryや他のライブラリを使用せずにクラス名に応じて要素を選択する適切な方法は何ですか.

ありがとう!

4

3 に答える 3

8

私はこのコードを見つけました:

if (!document.getElementsByClassName) {
    document.getElementsByClassName = function(classname) {
        var elArray = [];
        var tmp = document.getElementsByTagName("*");
        var regex = new RegExp("(^|\\s)" + classname + "(\\s|$)");
        for (var i = 0; i < tmp.length; i++) {

            if (regex.test(tmp[i].className)) {
                elArray.push(tmp[i]);
            }
        }

        return elArray;
    };
}​

ここ

于 2012-04-29T20:49:46.523 に答える
1

ここを参照してください:

getElementsByClassName のサポート

querySelectorの使用をお勧めします。これはより自然で、jQuery 構文に非常に近いため、ほとんどの人にとってより一般的です。また、非常に高速で、クラスや ID などを区別する必要がありません。

IE<7 をサポートしたい場合は、提供されている gdoron のような shim が必要です。

于 2012-04-29T20:56:14.947 に答える
0

IE8 以降でサポートされている document.querySelector または document.querySelectorAll を使用する方がよい場合があります。

ここを見てください:

https://developer.mozilla.org/docs/Web/API/document.querySelector https://developer.mozilla.org/docs/Web/API/document.querySelectorAll

于 2013-10-28T22:01:12.317 に答える