我的IE是IE 6.它已经很老了,但我必须使用它。
我刚发现一个奇怪的问题,它不支持“document.getElementById()”!
请参阅我的测试文件:test.html
<a id="aaa">xxx</a>
<script>
aaa = document.getElementById("aaa");
alert(aaa);
</script>
当我通过IE打开此文件时,会显示一个ERROR对话框:
line: 3
char: 1
error: object doesn't support the attribute or method
code: 0
URL: file://D:/test.html
我犯了一些错误吗?太奇怪了〜
答案 0 :(得分:15)
因为anchor元素(在IE6中)被设置为名为aaa的全局变量。然后你试图使用同名的另一个变量。
如果您将其更改为...
<a id="aaa">xxx</a>
<script>
bbb = document.getElementById("aaa");
alert(bbb);
</script>
它应该有用。
答案 1 :(得分:4)
更改变量名称,使其与元素ID不同。
答案 2 :(得分:4)
如barrylloyd所述,因为锚元素(在IE6中)被设置为名为aaa的全局变量。您可以使用var创建一个名为aaa的局部变量:
<a id="aaa">xxx</a>
<script type="text/javascript">
var aaa = document.getElementById("aaa");
alert(aaa);
</script>
答案 3 :(得分:0)
这是你的html文件或整个文件的片段吗?在第一种情况下,我建议添加相应的代码(<html>
,<body>
)和doctype。其次,当你执行这个javascript时应该加载元素,但是使用IE6,我不会依赖它。因此,您可能希望在onload函数中尝试它:
window.onLoad = function() {
alert(document.getElementById("aaa"));
}
答案 4 :(得分:-3)
如果您将javascript块放在<head>
标记部分中,它会起作用。无论如何,通常都应该放置JS。