javascript 未捕获的类型错误:无法读取空值的属性"innerHTML"

fsi0uk1n  于 2023-01-16  发布在  Java
关注(0)|答案(4)|浏览(127)

不断出现此错误,不知道原因
未捕获的类型错误:无法读取空值的属性"innerHTML"
我的代码是:

function write(message) {
  document.getElementById('message').innerHTML += message + '<br/>';
}

function calculateCircumference (diameter) {
    return diameter * 3.14;
}

write (calculateCircumference(4));
waxmsbnn

waxmsbnn1#

诚然,错误消息的含义并不完全透明(但至少您得到了一个错误- jQuery将只是默默地什么也不做!)
这意味着document.getElementById('message')的结果为null。Looking at the docs您将发现当元素找不到时会发生这种情况。
未找到元素的主要原因是因为它还不存在。

<script>// do something with document.getElementById('message');</script>
<div id="message"></div>

上面的操作会失败,因为message还不存在。将脚本移到div后面会使它工作。
旁注:3.14太不精确了,用Math.PI代替,它和JavaScript中的数字一样精确。

tyu7yeag

tyu7yeag2#

看起来您的代码在DOM准备就绪之前就执行了

window.onload = function(){
    function write(message) {
        document.getElementById('message').innerHTML += message + '<br/>';
    }

   function calculateCircumference (diameter) {
        return diameter * 3.14;
    }

    write (calculateCircumference(4));
}
c6ubokkw

c6ubokkw3#

如果你已经设置了你的id,你仍然得到同样的错误,确保你已经做了你的html的开始和结束标记正确。

nhn9ugyo

nhn9ugyo4#

此错误通常是在元素未加载而js函数试图访问它时导致的。
尝试在</body>之前的文档最末尾添加<script>标记
或检查元素的名称是否键入错误。

相关问题