onclick设置为undefined但我的语法正确,没有拼写错误?

时间:2017-10-14 16:04:43

标签: javascript function onclick

未捕获的TypeError:无法设置未定义的属性'onclick'

我一直收到上述错误,我无法弄清楚它出错的地方或方式。每当页面加载时错误都是即时的,我不必单击任何按钮来查找错误。我相信我有正确的语法,就我自己的眼睛所知,没有错别字。

以下是相关的HTML和JS代码。我喜欢在小部件中进行编码,以确保每个小部件在进入下一部分之前都能正常工作。

HTML

    <h4>Enter Hex Code</h4>
    <input id="hexInput"></input></br>
    <button>Generate</button>

的JavaScript

    var hexInput = document.getElementById("hexInput");
    var generateButton = document.getElementsByTagName("button")[0];

    var generateHex = function() {
     console.log(hexInput);
    };

    generateButton.onclick = generateHex;

如果我在帖子上错误地格式化了代码,请道歉。新注册。

感谢。

1 个答案:

答案 0 :(得分:0)

您的脚本在页面中的位置是否早于其使用的HTML,如下面的代码段?如果是这样,那么在浏览器创建DOM元素之前var hexInput...行正在运行。

<script>
var hexInput = document.getElementById("hexInput");
var generateButton = document.getElementsByTagName("button")[0];

var generateHex = function() {
 console.log(hexInput);
};

generateButton.onclick = generateHex;
</script>

<h4>Enter Hex Code</h4>
<input id="hexInput" />
<button>Generate</button>

你可以颠倒块的顺序,事情会很好(如this JSFiddle)。或者,如果脚本位于加载了<script src="...“的单独文件中,则在脚本运行之前将加载整个页面。