为什么这个简单的 JavaScript 秒表不起作用?

Why is this simple JavaScript stopwatch not working?

我写了一些非常简单的代码,应该代表一个带有两个按钮的秒表,点击 'Start' 应该从 0 开始向上计数,延迟 1 秒。

但是,当我点击时没有任何变化。我的错误在哪里?

"use strict";
var s = 1;

function mf() {
  setInterval(function() {
    document.getElementById("#sw").innerText = ++s;
  }, 1000);
}
<div id="sw">0</div>
<input type="button" value="Start" name="start" onlick="mf" />
<input type="button" value="Stop" name="stop" />

首先,你打错了。您键入 onlick 而不是 onclick。其次,document.getElementById 接受一个字符串,该字符串引用您要获取的元素的 ID。但是,它不需要#。

document.getElementById("sw")

您有两个问题:

1): 您正在使用

onlick="mf"

不过,应该是:

onclick="mf();"

2): 您在 'getElementByID' 中使用了 #。这不是 jQuery- 使用

document.getElementById("sw")

有效答案

"use strict";
 var s = 1;

  function mf() {
  setInterval(function() {
    document.getElementById("sw").innerText = s++;
   }, 1000);
 }
<div id="sw">0</div>
<input type="button" value="Start" name="start" onclick="mf();" />
<input type="button" value="Stop" name="stop" />

你的错误:

    document.getElementById("#sw").innerText = ++s;

应该是

    document.getElementById("sw").innerText = s++;

删除 #,并使用 s++,而不是 ++s

 <input type="button" value="Start" name="start" onlick="mf" />

该代码有 2 个错误:onlickmfOnlick 并非所有浏览器都支持 (xD)。请改用 onclick。另外,包括参数,所以 mf()