这个对document.getElementById的调用我做错了什么

时间:2009-10-17 15:32:14

标签: javascript internet-explorer-8

我有以下javascript代码

var myDiv = document.getElementById("myDiv");
alert(myDiv);                
myDiv.style.display = 'none';

警告(myDiv)的调用成功地显示myDiv不为空,我看到对象(div)具有所有必需的属性集等。

但是,对 myDiv.style.display = none 的调用会在IE 8中导致 Object Required javascript错误。

有关我需要检查的内容的任何指示?

感谢。

4 个答案:

答案 0 :(得分:2)

确保您的html标记有效。您可以使用w3c的验证service provided。或者,如果您正在使用任何IDE检查它是否具有验证工具

答案 1 :(得分:1)

确保在window.onload调用此脚本,而不是之前。

编辑:同样,请确保避免这样做的常见陷阱:

window.onload = foo() # PROBABLY WRONG

当你真的想要这样做时:

window.onload = foo

答案 2 :(得分:0)

此外,请检查除了仅在加载DOM之后尝试此操作时,您在页面上没有多个具有相同myDiv ID的元素。查看来源并尝试查找出现的位置,确保不会意外重复。

祝你好运!

答案 3 :(得分:0)

一个html元素会/可以有id和name。 在我的应用程序中,我们使用母版页(asp.net),因此当您将控件放在由母版页派生的内容页面下时,

  

控件的 id 将类似于“ctl00_ctl00_ctlname”

  

名称将有   “ctl00 $ $ ctl00 ctlname”

立即, 如果getElementById在IE7(IE 7)中正常工作而在IE8(IE 8)中不正常 那么一个可能的原因是在getElementById方法中传递的值/属性。 这是因为如果id不匹配,IE7用于按名称查找控件。

  

简而言之,如果你传递了价值   name属性然后是   getElementById()在IE8中不起作用

快乐的编码:)