0

此代码在 Google chrome 中完美运行;但是,它在 Internet Explorer 中不起作用。

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

怎么了?!

4

3 回答 3

2

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');
于 2013-10-17T15:14:25.063 回答
0

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

您可以尝试jQuery跨浏览器选择器解决方案的库。

于 2013-10-17T14:28:17.170 回答
0

在 Internet Explorer 的情况下,getElementsByClassName从版本9开始支持方法。

这是参考:http ://caniuse.com/getelementsbyclassname

于 2013-10-17T14:28:29.557 回答