我收到未捕获的类型错误:无法将属性“onclick”设置为 null? [复制]

Posted

技术标签:

【中文标题】我收到未捕获的类型错误:无法将属性“onclick”设置为 null? [复制]【英文标题】:i'm getting an Uncaught TypeError: Cannot set property 'onclick' of null? [duplicate] 【发布时间】:2016-02-21 21:01:07 【问题描述】:

我收到以下未捕获的类型错误: 未捕获的类型错误:无法设置属性 'onclick' of null

<!DOCTYPE html>
<html>
    <head>
        <title>dice app</title>
        <script src="widget.js"></script>
    </head>
    <body>
        <button id="button">Roll Dice</button>
    </body>
</html>

js代码:

var button = document.getElementById("button");

button.onclick = function() // error
    var print = dice.roll();
    printNumber(print);
;

【问题讨论】:

一方面,您dice 没有在任何地方定义。按钮看起来不错。 您可能需要将此代码放在“onload”函数中,因为如果您将其放在窗口根目录中,它可能会在页面完全加载之前执行,然后是按钮对象不存在 更好的副本可能是Why does jQuery or a DOM method such as getElementById not find the element? 【参考方案1】:

将脚本移动到 HTML 中的按钮之后。目前正在评估脚本,但尚未创建 HTML 元素。

【讨论】:

【参考方案2】:

您在元素存在之前执行您的 javascript。将您的代码移动到页面末尾或将其放在 onload 处理程序中。

例如:

<!DOCTYPE html>
<html>
    <head>
        <title>dice app</title>
    </head>
    <body>
        <button id="button">Roll Dice</button>
        <script src="widget.js"></script>
    </body>
</html>

【讨论】:

以上是关于我收到未捕获的类型错误:无法将属性“onclick”设置为 null? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 未捕获类型错误:无法读取 null 的属性“样式”:按钮 Onclick 使 html 消失

为啥我会收到此错误:未捕获的类型错误:无法读取 null 的属性 'classList'

未捕获的类型错误:无法读取未定义的属性“toLowerCase”

为啥我会收到“未捕获的类型错误:无法读取未定义的属性 'body'”?

数据表:未捕获的类型错误:无法读取未定义的属性“长度”

d3.json:“未捕获的类型错误:无法读取未定义的属性‘孩子’”