getElementsByClassName和IE9

use*_*341 1 javascript internet-explorer

我正在尝试使用getElementsByClassName来隐藏页面上的一些元素.我在这里使用了第一个答案:

使用getElementByClass隐藏多个元素的替代方法是什么?

编写我自己的代码,它适用于Chrome和FF,但不适用于IE9.我读过的所有内容都说getElementsByClassName应该可以在IE9中运行.下面的代码不是放置我自己的代码,而是来自上面链接的答案,因为它类似于我自己的并且已经紧凑.当我将它加载到IE9时,按钮什么都不做(在Chrome和FF中很好).如果我把try和catch函数中的代码放在一起,它会说对象错误.它应该工作吗?

<head>
<script type="text/javascript">
function hideNames()
{
 var list = document.getElementsByClassName("webname");
for (var i = 0; i < list.length; i++) {
    list[i].style.display="none";
}
}

function showNames()
{
var list = document.getElementsByClassName("webname");
for (var i = 0; i < list.length; i++) {
    list[i].style.display="block";
}
}

</script>
</head>
<body>
<p class="webname">Webname</p>
<p class="webname">test</p>
<input type="button" onclick="hideNames()" value="Hide Web Names" />
<input type="button" onclick="showNames()" value="Show Web Names" />
</body>
Run Code Online (Sandbox Code Playgroud)

use*_*012 5

你可能处于怪癖或兼容模式.IE9需要标准模式.

不要忘记你<!doctype html>在HTML文档的顶部,也许<meta http-equiv="X-UA-Compatible" content="IE=edge" /><head>.