跨浏览器按类名选择元素

时间:2012-04-29 20:43:01

标签: javascript

如何在javascript中选择使用相同类名的所有元素。我知道我可以使用document.getElementsByClassName来做这件事,但我在某处读到它不是跨浏览器所以如果它是真的,那么根据类名选择元素的适当方法是什么,而没有jQuery或其他库。

谢谢!

3 个答案:

答案 0 :(得分: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;
    };
}​

Here

答案 1 :(得分:1)

见这里:

Support for getElementsByClassName

我建议使用querySelector。它更自然,非常接近jQuery语法,因此对大多数人来说更常见。它也非常快,你不需要区分类,ID或其他。

如果你想支持IE&lt; 7,你需要一个像gdoron一样的垫片。

答案 2 :(得分:0)

使用自IE8以来支持的document.querySelector或document.querySelectorAll可能更好。

看看这里:

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

相关问题