我有以下javascript代码
var myDiv = document.getElementById("myDiv");
alert(myDiv);
myDiv.style.display = 'none';
对警告(myDiv)的调用成功地显示myDiv不为空,我看到对象(div)具有所有必需的属性集等。
但是,对 myDiv.style.display = none 的调用会在IE 8中导致 Object Required javascript错误。
有关我需要检查的内容的任何指示?
感谢。
答案 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中不起作用
快乐的编码:)