【发布时间】:2017-10-20 12:38:25
【问题描述】:
以下错误不断重复...我只是想解释一下这里有什么问题和一些提示
错误
script.js:20 Uncaught TypeError: Cannot read property 'insertAdjacentHTML' of null
at renderHTML (script.js:20)
at XMLHttpRequest.ourRequest.onload (script.js:13)
javascript
var animalContainer=_('animal-info');
function _(id){
return document.getElementById(id);
}
_('btn').addEventListener("click",function(){
var ourRequest=new XMLHttpRequest();
ourRequest.open('GET','test.json');
ourRequest.onload=function(){
var ourData=JSON.parse(ourRequest.responseText);
renderHTML(ourData);
console.log(ourData[0]);
};
ourRequest.send();
});
function renderHTML(data){
animalContainer.insertAdjacentHTML('beforeend','testing 123');
}
index.php
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
<button id ="btn">Submit</button>
<script type="text/javascript" src="script.js"></script>
<div id="animal-info"></div>
</body>
</html>
【问题讨论】:
-
将您的脚本标签放在
body的结束标签之前,或者改用加载事件。 -
成功了!非常感谢
-
将常见的内置函数(如
getElementById)与_混为一谈会造成混淆,并且会阻止您正确/完全实现框架。您节省的几个字节不会使您的脚本运行得更快,但维护起来却很麻烦,尤其是对其他人而言。
标签: javascript json ajax