这段代码可以完美地在Google chrome中运行;但是,它不能在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');

关于javascript - Google Chrome和Internet Explorer中的getElementsByClassName性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19429456/

10-12 13:17