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 提供的垫片。

于 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 回答