“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”),問題得到解決。