【问题标题】:Why is this simple JavaScript stopwatch not working? [closed]为什么这个简单的 JavaScript 秒表不起作用? [关闭]
【发布时间】:2016-11-06 20:32:43
【问题描述】:

我写了一些非常简单的代码,它应该代表一个带有两个按钮的秒表,点击“开始”应该从 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" />

【问题讨论】:

  • 不要在getElementById中使用hash,它不是jQuery
  • 你需要调用你的函数onclick。 onclick="mf" 应该是 onclick="mf()"
  • 而且它不是 onlick,它是 onclick。舔是别的东西:)
  • onlick 对于一些未来的设备来说可能是一个不错的补充。我们只能想象;-)
  • 我在答案中添加了一个工作示例 - 如果有帮助,请接受它

标签: javascript chronometer


【解决方案1】:

你有两个问题:

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()

【讨论】:

  • onclick 不是onlick
  • @nem035- 谢谢,我刚刚复制了 OA 使用的内容。我没有检查那个
  • 谢谢你现在工作得很好。 :)
【解决方案2】:

首先,你有一个错字。您输入了 onlick 而不是 onclick。其次,document.getElementById 采用一个字符串,该字符串引用您尝试获取的元素的 id。但是,它不需要#。

document.getElementById("sw")

【讨论】:

  • 哦,是的,谢谢你解决了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
  • 2012-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多