未捕获的TypeError:无法读取null的属性“innerHTML”

时间:2014-04-02 14:38:11

标签: javascript innerhtml typeerror

继续收到此错误,不明白为什么

未捕获的TypeError:无法读取属性< innerHTML'为null

我的代码是:

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

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

write (calculateCircumference(4));

3 个答案:

答案 0 :(得分:7)

不可否认,错误信息的含义并不完全透明(但至少你得到一个错误 - jQuery会默默地做什么!)

这意味着document.getElementById('message')的结果为空。 Looking at the docs你会发现,当找不到元素时会发生这种情况。

找不到元素的主要原因是因为它尚未存在。

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

以上将失败,因为message尚不存在。在div之后移动脚本将使其工作。

旁注:3.14太不准确了。请改用Math.PI,它与JavaScript中的数字一样准确。

答案 1 :(得分:2)

似乎在DOM准备好之前执行了代码

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

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

    write (calculateCircumference(4));
}

答案 2 :(得分:0)

如果设置了ID,但仍然出现相同的错误,请确保正确完成了html的打开和关闭标签。