【问题标题】:Javascript Counter - Skips number 1. Goes from 0 to 2 - Why? [closed]Javascript 计数器 - 跳过数字 1。从 0 变为 2 - 为什么? [关闭]
【发布时间】:2018-10-02 13:08:51
【问题描述】:

正如标题所示,我在页面上有一个简单的计数器。 两个按钮:一个加 1,另一个减 1。 它从“0”开始。单击“添加按钮”时,应转到“1”。 但它会直接跳到“2”。这是为什么?我做错了什么?

这是我所拥有的:

    var count = 1;
    var countEl = document.getElementById("count");
    function plus(){
        count++;
        countEl.value = count;
    }
    function minus(){
      if (count > 0) {
        count--;
        countEl.value = count;
      }  
    }
<input type="text" size="25" value="0" id="count">
<input type="button" value="-" onclick="minus()">
<input type="button" value="+" onclick="plus()">

【问题讨论】:

  • var count = 1; = 它从 1 开始,而不是 0。
  • 您在开始时输入的值是 0,但 count 中的值是 1。当您单击“加号”时,您首先将 count 增加到 2,然后更新您的输入.
  • 为什么不使用输入的值?为什么要使用变量?
  • @FreemanLambda 因为它没有显示调试工作。 OP 增加了一个变量,该变量从一个值开始,然后对为什么该值增加感到困惑。
  • 感谢大家的反馈。我很抱歉问了一些必须非常基本和明显的问题。我是 Stack Overflow 和 Javascript 的新手。我正在努力学习。我会尽量不再犯同样的错误。

标签: javascript counter


【解决方案1】:

当点击“添加按钮”时,它应该转到“1”。但它会直接跳到“2”

count++; /* do this later */
countEl.value = count;

这是因为您更新计数之前显示其以前的状态

var countEl = document.getElementById("count");
var count = parseInt(countEl.value);

function plus() {
  countEl.value = ++count;
}

function minus() {
  if (count > 0) {
    countEl.value = --count;
  }
}
<input type="text" size="25" value="0" id="count">
<input type="button" value="-" onclick="minus()">
<input type="button" value="+" onclick="plus()">

另一个不需要两个函数的例子

var countEl = document.getElementById("count");

function add(by) {
  var res = parseInt(countEl.value) + parseInt(by);
  countEl.value = 0 > res ? '0' : res;
}
<input type="text" size="25" value="0" id="count">
<input type="button" value="-1" onclick="add(this.value)">
<input type="button" value="+1" onclick="add(this.value)">

【讨论】:

  • 非常感谢您的帮助。我学到了很多!我不知道我可以这样简化它。
猜你喜欢
  • 2020-06-05
  • 1970-01-01
  • 2013-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多