【问题标题】:Why this code goes to concatenation and not adding? [duplicate]为什么此代码用于连接而不是添加? [复制]
【发布时间】:2019-06-27 07:45:29
【问题描述】:

我正在尝试做一个函数,每次向 textarea 添加字符时加 5,删除字符时减 5。

这是我的 HTML

<textarea rows="4" cols="50" id="my-area"></textarea>
<p>Chars: <span id="counter">0</span></p>

这是我的 JS

let area = document.getElementById("my-area"),
  counter = document.getElementById("counter"),
  count = 0;

area.onkeyup = area.onkeydown = area.onpaste = area.onchange = function() {
  if (area.value.length > count) {
    count++;
    parseInt(counter.innerHTML);
    counter.innerHTML = parseInt(counter.innerHTML + 5);
  } else if (area.value.length < count) {
    count--;
    counter.innerHTML -= 5;
  }
};

当我第一次添加一个字符时,它可以正常工作 - 5 添加到计数器的 innerHTML 中,但是当我添加第二个字符时,数字是连接的而不是添加的。减法效果很好。如何解决添加问题?

第二种情况:如果我在 p 中添加 id 为“counter”的字符串“PLN”或“DOLLARS”(例如:“0 PLN”)并且我希望它在数字后减5?

【问题讨论】:

    标签: javascript concatenation add


    【解决方案1】:

    这是因为 javascript 中的 Type Coercion

    而是将其解析为 int 然后加上 5

    parseInt(counter.innerHTML) + 5
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-02
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 1970-01-01
      • 2013-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多