未捕获的类型错误:无法读取 null 的 'appendChild' 属性。
未捕获的类型错误:无法读取 null 的 'appendChild' 属性。
我在我的代码中遇到了以下错误:\n
\nUncaught TypeError: Cannot read property \'appendChild\' of null\nmyRequest.onreadystatechange @ script.js:20\n
\n下面是我的代码:\n
// index.htmlSimple Page 这是一个AJAX示例
\n这是我的JavaScript文件:\n
// script.js // 1. 创建请求 var myRequest; // 功能检查! if(window.XMLHttpRequest) { // Firefox, Safari myRequest = new XMLHttpRequest(); } else if (window.ActiveXObject){ // IE myRequest = new ActiveXObject("Microsoft.XMLHTTP"); } // 2. 创建请求的回调事件处理程序 myRequest.onreadystatechange = function() { console.log("我们被调用了!"); console.log(myRequest.readyState); if(myRequest.readyState === 4){ var p = document.createElement("p"); var t = document.createTextNode(myRequest.responseText); p.appendChild(t); document.getElementById("mainContent").appendChild(p); } }; // 3. 打开并发送请求 myRequest.open("GET","simple.txt", true); // 是否有任何参数? myRequest.send(null);
\n这是simple.txt
的内容:\n
\n这是一个简单文本文件的内容。\n
\n我按照@Tejs在这里的建议,将脚本标签放在html底部,但仍然出现这个错误。
文章标题:解决(Uncaught TypeError: Cannot read property 'appendChild' of null)错误的两种方法
最近在阅读相关问题的答案时发现了一些很好的解决方案。我也遇到了同样的问题,我尝试了<script src="script.js" defer></script>
,但效果并不好。我已经正确设置了所有的代码和链接。问题是我把js文件的链接放在了页面的头部,这样它就在DOM加载之前被加载了。针对这个问题,有两种解决方法。
第一种方法是使用
window.onload = () => { //在这里编写你的代码 }
。
第二种方法是将<script src="script.js"></script>
添加到html文件的底部,这样它就会在最后加载。
希望这两种方法能帮助到遇到相同问题的人们。
很多人遇到了以下错误:
Uncaught TypeError: Cannot read property 'appendChild' of null
,该错误通常发生在使用querySelector
或getElementById
时,尽管在HTML中已经有相应的类名或id。如果你的脚本标签位于
defer
属性,像这样:
<script src="script.js" defer></script>
。通过添加defer
属性,代码在浏览器中执行时会等待HTML加载完成。将"defer"放在脚本文件中可以解决此问题。有了"defer",JavaScript文件会在页面最后加载,这样就可以防止错误的发生。感谢你的解答,我差点要疯了。原来脚本标签在