【问题标题】:setInterval is not working with innerHTML?setInterval 不适用于innerHTML?
【发布时间】:2021-06-22 07:01:34
【问题描述】:

我正在尝试在我的网站上创建一个小地方来显示运行秒数。但我的 javascript 函数没有运行。同时,它没有显示任何错误。这是我的 JavaScript 代码:

function stoptime() {
    let count = 0;
    count = count+1;
    stop = document.getElementById("time");
    stop.iinnerHTML = count.value;

setInterval(stoptime, 1000);   

我可以将此代码与 document.write 函数一起使用,但它没有给出 count ++ 值,而是显示了许多单个 count 值。所以我尝试将它与 innerHtml 一起使用,但它没有运行。

请告诉我是什么原因和正确的代码?

【问题讨论】:

  • let count = 0; count = count+1; 每次运行...所以计数将始终为1 --- 将let count = 0 放在函数之外...另外,一个数字(这就是count is) 没有.value 属性...并且stop.iinnerHTML 应该是stop.innerHTML - 这可以解释为什么没有似乎发生
  • 而不是 count.value 它必须是 count only !。还要将计数声明为全局变量而不是局部变量,即 let count = 0 变量不能在函数内部
  • 添加到上面的评论,count.value 是什么?从代码中我们可以看出count不是一个对象。此外,“iinnerHTML”,两个 ii。这是代码中的错字吗?

标签: javascript error-handling setinterval innerhtml stopwatch


【解决方案1】:

HTML

 <span id="time"></span>

JS

  let count = 0;
  function stoptime() {
    count++
    stop = document.getElementById("time");
    stop.innerHTML = count;
  }

  setInterval(stoptime, 1000);

【讨论】:

    【解决方案2】:

    count 变量每次都在同一个函数中初始化。每次调用该函数时,它的值都会重置为 1。将 count 声明移到函数之外应该可以解决您的问题。

    你也不需要 count.value

    let count = 0;
    function stoptime() {
        count = count+1;
        stop = document.getElementById("time");
        stop.innerHTML = count;
    }
    setInterval(stoptime, 1000);   
    &lt;div id="time"&gt;&lt;/div&gt;

    【讨论】:

      猜你喜欢
      • 2013-08-05
      • 2014-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多