簡體   English   中英

JS未顯示錯誤結果更新

[英]JS Not showing wrong result UPDATED

相反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 = ab; 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> 

您的代碼可以正常工作,只是您在這里有一個錯誤

<span class= id="wall">1000</span></p>

如果不需要,請刪除class=或添加一個類。

關於您對價值檢查器的詢問。 我創建了一個代碼段來幫助您。

function send(){
    var labelWall = document.getElementById('wall');
    var labelGW = document.getElementById('gw');
    var wallValue = parseInt(labelWall.innerHTML, 10);
    var GWValue = parseInt(labelGW.innerHTML, 10);
    var b = 500;

    if(wallValue > 0 && GWValue > 0) {
        labelGW.innerHTML = GWValue - b;
        labelWall.innerHTML = wallValue - b;
    }
}

這是筆

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM