getElementsByClassName和IE9

时间:2013-09-13 20:13:54

标签: javascript internet-explorer

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

What is an alternative to using getElementByClass for hiding multiple elements?

编写我自己的代码,它适用于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>

1 个答案:

答案 0 :(得分:5)

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

不要忘记HTML文档顶部的<!doctype html><meta http-equiv="X-UA-Compatible" content="IE=edge" />中可能<head>