首页 > 解决方案 > Javascript 没有按照我的意图与 div 交互

问题描述

免责声明:我是一个完整的菜鸟,所以如果我错过了一些明显的东西,请不要对我尖叫。

我正在尝试获取外部 javascript 文件来更新元素,但它一直给我以下错误:
Uncaught ReferenceError: cannot assign to function call
这是我的代码:

<!DOCTYPE html>
 <html lang="en">
  <body>
   <script src="magic.js"></script>
    <button onclick="detclic()"></button>
     <div id="htmldivone"></div>
  </body>
</html>

javascript代码:

var i = 2;
var e = 1;
var o = e * 2;
function detclic() {
if (o <= i) {
i = i - o;
document.getElementById("htmldivone").innerHTML = o;
}
}

基本上我会给变量 ia 值 2 并且需要 3 次尝试才能更新元素,我不知道为什么。帮助?(这只是在你问之前我正在制作的一些愚蠢的迷你游戏。)

标签: javascripthtml

解决方案


在这一行:

<button onclick="detclic()"></button>

您引用然后引用的detclic()函数#htmldivone

即使此时,解析器还没有达到:

<div id="htmldivone"></div>

也没有解析detclic()函数。


替代方法:

使用内联事件侦听器的另一种方法(可以说是更清洁的方法onclick="detclic()")是:

  • onclick="detclic()"从您的 HTML中删除;和
  • addEventListener改为在您的脚本中使用

像这样:

const myButton = document.getElementsByTagName('button')[0];
myButton.addEventListener('click', detclic, false);

推荐阅读