“getElementById(...)为空或不是对象”产生的原因可能有很多种,在此我只列出我在实际开发中产生这种错误的原因以及解决方法。
问题再现:
在页面中添加了一个按钮,<input type="button" runat="server" id="btnGet" value="Get" style="display:none"/>
在js中希望通过document.getElementById(“btnGet”)来找到这个节点,结果出现了getElementById(…)为空或不是对象的错误。
问题产生的原因:
Visual Studio编译时将控件的id改成了“ctl00_PageBody_btnGet”,具体原因我也不是很清楚,还有待研究。
解决方法:
运行程序之后,在浏览器中查看哪行代码出现了问题,然后查看源文件,找到出问题的代码,查看在源代码中控件的id,然后将源代码中的控件id替换掉程序中的id,即用document.getElementById(“ctl00_PageBody_btnGet”)替换掉document.getElementById(“btnGet”),问题得到解决。