1

我正在尝试使用 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>
4

1 回答 1

5

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

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

于 2013-09-13T20:28:47.777 回答