提问者:小点点

Javascript与div的交互方式不是我想要的


免责声明:我是一个完全的和完全的noob在这,所以请不要对我尖叫,如果我错过了一些明显的东西。

我正在尝试获取外部javascript文件来更新元素,但它一直给我以下错误:
未捕获的ReferenceError:无法分配到函数调用
下面是我的代码:

<!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;
}
}

基本上,我给变量I的值为2,它需要尝试3次来更新元素,我不知道为什么。 帮忙? (这只是我在你问之前做的一些愚蠢的小游戏。)


共2个答案

匿名用户

在这一行中:

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

引用DetClicy()函数,然后该函数引用#HtmlDivOne

即使在这一点上,HTML解析器还没有达到:

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

替代办法:

使用内联事件侦听器(如onclick=“detclic()”)的另一种方法是:

  • 从HTML中删除onclick=“DetClicy()”; 和
  • 在脚本中改用AddEventListener

像这样:

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

匿名用户

当o等于2,i等于零时,您的函数永远不会被执行,因为您的第一个条件if(o<=i)永远不会为真。

第二个错误是,您正在递减i的值,而没有循环您函数中的代码,因此i将始终具有相同的值。

你能更多地解释一下你需要做什么,确切地说,需要做你的脚本吗?