【问题标题】:TypeError: Cannot Set property 'onclick' of nullTypeError:无法设置属性“onclick”为空
【发布时间】:2018-08-06 18:20:57
【问题描述】:

下面的html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/>
    <title>Stopwatch</title>
  </head>
  <body>
    <p><span id="seconds">00</span><span>:</span><span id ="tens">00</span></p>
    <button id="start">Start</button>
    <button id="stop">Stop</button>
    <button id="reset">Reset</button>
    <script src="main.js"></script>
  </body>
</html>

下面的javascript

window.onload = function () {
  var seconds = 0
  var tens = 0
  var getTens = document.getElementById('tens')
  var getSeconds = document.getElementById('seconds')
  var start = document.getElementById('Start')
  var stop = document.getElementById('Stop')
  var reset = document.getElementById('Reset')
  var interval
  start.onclick = function () {
    clearInterval(interval)
    interval = setInterval(startTimer, 10)
  }

  stop.onclick = function () {
    clearInterval(interval)
  }

  reset.onclick = function () {
    clearInterval(interval)
    tens = '00'
    seconds = '00'
    getTens.innerHTML = tens
    getSeconds.innerHTML = seconds
  }

  function startTimer() {
    tens++
    if (tens < 9) {
      getSeconds.innerHTML = '0' + tens
    }
    if (tens > 9) {
      getTens.innerHTML = tens
    }
    if (tens > 99) {
      console.log('seconds')
      seconds++
      getSeconds.innerHTML = '0' + seconds
      tens = 0
      getTens.innerHTML = '0' + 0
    }
    if (seconds > 9) {
      getSeconds.innerHTML = seconds
    }
  }
}

我得到了这个(main.js:11 Uncaught TypeError: Cannot set property 'onclick' of null at window.onload) 控制台中的错误,无法弄清楚原因。我已经尝试了多种其他解决方案,包括在 HTML 中移动标签,正如我所见,这对其他人有所帮助,但我无法得到它。

【问题讨论】:

  • 这给了我一个原子中的 ESLint 错误,但在控制台中仍然是同样的错误。 @gurvinder372

标签: javascript html


【解决方案1】:

ids 区分大小写。所以你的元素是#stop 而不是#Stop

  var stop = document.getElementById('stop')

只要确保对所有元素都这样做。

【讨论】:

  • reset \ Reset 也是如此
  • 谢谢,我觉得自己像个白痴。 +1 是的,我为所有人做了。干杯
  • @Roman 是的 .. 认为这很明显,但是是的,编辑了我的答案。
【解决方案2】:

检查id的大小写。 你用html写id="start",用js写document.getElementById('Start')

【讨论】:

    猜你喜欢
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 2021-05-23
    • 2019-10-24
    相关资源
    最近更新 更多