Javascript &引用;无法读取属性';innerHTML';“无效”的定义;错误

Javascript &引用;无法读取属性';innerHTML';“无效”的定义;错误,javascript,html,Javascript,Html,我在文件letterbyletter.js的第11行遇到错误“无法读取null的属性'innerHTML'。其代码如下: 功能printLetterByLetter(目的地、信息、速度){ 设h=0; var interval=setInterval(函数(){ 如果(h==0){ 停止=错误 } if(h>message.length | |(stop==true&&h!==0)){ 间隔时间; 停止=错误 }else if(message.charAt(h)!=”我克隆了repo 当错误发生

我在文件letterbyletter.js的第11行遇到错误“无法读取null的属性'innerHTML'。其代码如下:

功能printLetterByLetter(目的地、信息、速度){
设h=0;
var interval=setInterval(函数(){
如果(h==0){
停止=错误
}
if(h>message.length | |(stop==true&&h!==0)){
间隔时间;
停止=错误
}else if(message.charAt(h)!=”我克隆了repo

当错误发生时,DOM中没有“#textbox”,它被
battle
函数中的“#statsbox”替换。你需要使用chrome开发工具一步一步地调试,这将帮助你更轻松地开发这个游戏


快乐编码!

这是因为当您单击“确认”按钮时,您将执行
battle(0)
,此函数中的第一条指令是覆盖整个DOM:
document.getElementById(“body”).innerHTML=“
。因此其他所有内容都将消失


您可以
console.log
printLetterByLetter()开头的元素的原因
然后10行之后它会记录
null
是因为这10行在
setInterval
内,在生命周期结束后执行。DOM在这10行之间被覆盖。

destination
字符串吗?元素是否具有
id=“textbox”"
?id为
textbox的html元素在哪里?
是的,目的地是一个字符串,我在调用PrintleteByletter之前添加了该元素。在加载时检查代码我克隆了你的repo,在Chrome中删除index.html,玩了一玩,我没有出错。谢谢。有时我可以成为一个真正的骨灰头。你真的很欣赏你的游戏,你是的you’你是一名优秀的开发人员,工作努力,充满激情。谢谢!这是我的第一个大项目,我想让它成为一个好项目。我已经做了几天了。随着开发的进展,我将把它上传到GitHub。如果你想在游戏继续进行的过程中提出建议,你可以加入我的discord频道。发生了什么我在run.js的底部留下了一个battle(num9)。我不想在那里看到它。按钮应该可以做到这一点,我在代码中添加了安全措施,以确保在使用按钮时不会发生这样的错误。
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="css/first.css">
    <title id="title">Lives in Space</title>
</head>
<body id="body">
    <script src="js/globalvars.js"></script>
    <script src="js/sleep.js"></script>
    <script src="js/letterbyletter.js"></script>
    <script src="js/format.js"></script>
    <script src="js/cleardoc.js"></script>
    <script src="js/doEffects.js"></script>
    <script src="js/use.js"></script>
    <script src="js/toss.js"></script>
    <script src="js/battleresults.js"></script>
    <script src="js/friend.js"></script>
    <script src="js/run.js"></script>
    <script src="js/attack.js"></script>
    <script src="js/battle.js"></script>
    <script src="js/event.js"></script>
    <script src="js/explore.js"></script>
    <script src="js/moveto.js"></script>
    <script src="js/second.js"></script>
    <script src="js/rpgland.js"></script>
    <script src="js/loop.js"></script>
</body>
</html>