javascript - JS 未显示错误结果已更新

标签 javascript html

不是 39500 输出,而是 500。有人可以帮助我吗,我希望如果 gw 达到 0,墙上就不应该再有 -500。

我使用了我的代码,但它不起作用。 HTML

<li><b>Infantry: </b><span id="gw">40000</span></li>
<p class="fort"><b>Fort: </b><span id="wall">1000</span></p>
<button class="troops" onclick="send()">SEND TROOPS</button>

JS

function send(){
    var a = document.getElementById('gw').innerHTML;
    var b = 500;
    var c = a-b;

    var label = document.getElementById('wall');
    label.innerHTML = parseInt(label.innerHTML) - b;
    var label = document.getElementById('gw');
    label.innerHTML = parseInt(label.innerHTML) - c;

}

最佳答案

您的主要问题是您正在执行 var c = a-b;b 是一个数字,但 a 是一个字符串(Element.innerHTML) - 没有对该值执行 parseInt(value, radix)...并且其中还有其他数学减法困惑...

相反:

// Helper function to set to 0 a value lower than 0
function zeroMin(val) {
  return parseInt(val, 10) < 0 ? 0 : val;
}

function send() {

  var EL_gw = document.getElementById('gw'),
    EL_wa = document.getElementById('wall'),
    gw = parseInt(EL_gw.innerHTML, 10),
    wa = parseInt(EL_wa.innerHTML, 10),
    hitVal = 500;

  // Subtract
  gw -= hitVal;
  wa -= hitVal;

  // fix to 0
  gw = zeroMin(gw);
  wa = zeroMin(wa);

  EL_gw.innerHTML = gw;
  EL_wa.innerHTML = wa;

}
<b>Infantry:</b> <span id="gw">40000</span> <br>
<b>Fort:</b> <span id="wall">1000</span> <br>

<button class="troops" onclick="send()">SEND TROOPS</button>

如果您想在任何值达到 0 时停止任何进一步的操作

function send() {

  var EL_gw = document.getElementById('gw'),
      EL_wa = document.getElementById('wall'),
    gw = parseInt(EL_gw.innerHTML, 10),
    wa = parseInt(EL_wa.innerHTML, 10),
    hitVal = 500;

  if (gw <= 0 || wa <= 0) return; // Do nothing if any is <= 0 

  // else...
  gw -= hitVal;
  wa -= hitVal;

  EL_gw.innerHTML = gw;
  EL_wa.innerHTML = wa;
  
}
<b>Infantry:</b> <span id="gw">40000</span>
(will stop decreasing if FORT energy is 0 and vice-versa)<br>
<b>Fort:</b> <span id="wall">1000</span> <br>

<button class="troops" onclick="send()">SEND TROOPS</button>

关于javascript - JS 未显示错误结果已更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44401589/

相关文章:

javascript - 努力保持 ViewModel 数据在下拉回发中

html - 如何在图像顶部获取文本并停止调整图像大小?

css - 在 html 方面需要帮助。更改背景、布局

html - 将元素添加到导航栏

javascript - jsx css 大小问题,可能的 flex 转换

javascript - IntelliJ IDEA 没有运行基本的 JavaScript hello world

javascript - 如何在 Node 服务器上强制用户从服务器端注销并对Web应用程序使用react?

javascript - 复制时将任何复制的文本和/或图像更改为我自己的文本

javascript - 使用 CSS 和 jquery 应用滚动效果

javascript - 用javascript获取url参数