我收到未捕获的类型错误:无法将属性“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”