我在获取简单的 HTML5 DOM 处理以在 MSIE 9 上工作时遇到问题。它在没有 DOCTYPE 标记的情况下工作。但是由于包含 DOCTYPE html(表示 html5),MSIE 9 不会处理它。有没有另一种方法可以做到这一点,以便它像 html5 一样工作?
该代码尝试通过获取 DOM 节点并通过标签名称从中获取元素来创建 nodeList。简单的测试是显示 nodeList.length。这是我认为正在构建的应用程序中的一个较大问题的一个小示例。但我认为,在这里展示一小段代码要比向您展示我的整个应用程序要好。
以下代码适用于 Chrome、Firefox、Opera 和可能更多...但不适用于 MSIE 9。我也有它在线,所以您只需单击此链接(只要我正在运行)并尝试它;然后复制地址在其他浏览器中尝试。我还删除了“<!DOCTYPE html>”,然后它可以在 MSIE 中使用。但是没有浏览器会知道它是html5(如果我理解正确的话)。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
function setOptions () {
var ndiv = document.getElementById("products");
var OptionList = ndiv.getElementsByTagName("option");
document.getElementById("dump").innerHTML = "OptionList.length " + OptionList.length;
}
</script>
</head>
<body onload="setOptions()">
<br/><br/><br/>
<div id="dump"></div>
<div id="products" style="display:none">
<option>MOTOR</option>
<option>CHASSI</option>
<option>ELECTRIC</option>
<option>BRAKES</option>
<option>TIRES</option>
</div>
</body>
</html>