![](/img/trans.png)
[英]Firebug is returning: document.getElementById(…) is null -what am I doing wrong?
[英]What am I doing wrong with this call to document.getElementById
我有以下javascript代码
var myDiv = document.getElementById("myDiv");
alert(myDiv);
myDiv.style.display = 'none';
对alert(myDiv)的调用成功显示myDiv不为null,并且我看到对象(div)已设置了所有必需的属性,等等。
但是,对myDiv.style.display = none的调用导致IE 8中的Object Required javascript错误。
关于我需要检查的任何指示?
谢谢。
确保在window.onload
而不是之前调用此脚本。
编辑:此外,请确保避免这样做的常见陷阱:
window.onload = foo() # PROBABLY WRONG
当您真正想要这样做时:
window.onload = foo
另外,请检查除了仅在DOM加载后才尝试执行此操作之外,还要检查页面上具有相同myDiv
ID的元素是否不止一个。 查看源代码并尝试查找它的出现位置,确保不会意外重复出现。
祝好运!
html元素将/可以具有ID和名称。 在我的应用程序中,我们使用母版页(asp.net),因此当您将控件放在由母版页派生的内容页下时,
控件的ID将类似于“ ctl00_ctl00_ctlname”
和
该名称将具有“ ctl00 $ ctl00 $ ctlname”
现在,如果getElementById在IE7(IE 7)中工作正常,而在IE8(IE 8)中则工作不正常,那么一个可能的原因是getElementById方法中传递的值/属性。 这是因为IE7用于在ID不匹配的情况下按名称查找控件。
简而言之,如果您传递name属性的值,则getElementById()在IE8中将不起作用
快乐的编码:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.