getElementsByClassName 在 Google Chrome 和 Internet Explorer 中

getElementsByClassName performance in Google Chrome and Internet Explorer

本文关键字:Internet Explorer Chrome Google getElementsByClassName      更新时间:2023-09-26

这段代码在谷歌浏览器中完美运行;但是,它在Internet Explorer中不起作用。

function HideMyClassItems()
{
    var classone= document.getElementsByClassName('classone');
    for(var i=0; i<classone.length; i++) { 
    classone[i].style.display='none';
    }
}

怎么了?!

IE8及更低版本不支持getElementsByClassName(),但您可以尝试三个选项。

1:您可以创建一个函数

function getElementsByClassName(node, classname) {
    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;
}

并像这样使用函数

var classone = getElementsByClassName(document.body,'classone');  // no document

2:你可以使用 jQuery。

var classone = $('.classone');

3:您可以使用querySelectorAll()方法/函数。

var classone = querySelectorAll('.classone');

getElementsByClassName方法可能并非在所有浏览器中都可用。

您可以试用jQuery库以获取跨浏览器选择器解决方案。

对于 Internet Explorer,从版本 9 开始支持getElementsByClassName方法。

参考资料如下: http://caniuse.com/getelementsbyclassname