而循环出现div值故障



由于某种原因,它没有采用正常的平衡(1000-950(,而是通过while循环从1000变为0。我不希望refBalance小于0。(numDebit2((return 50(

<div class="elements" id="txtbalance">1000</div>
<div class="elements" id="txtdebit">0</div>          
<button class="button1" id="buttonNewHand" onclick="drawFaceTot()">new<br>hand</button>
refDebit = document.getElementById("txtdebit");
refBalance = document.getElementById("txtbalance");

function numBalance(debit){


var nBalance = parseInt(refBalance.innerText, 10);

nBalance = nBalance - debit;

refBalance.innerHTML = nBalance;


}
//I didn't want the refBalance to be less than 0.
function drawFaceTot(){

while (refBalance.innerHTML > 0) {
numBalance(numDebit2());
}   
}

您可能混淆了循环(while(和一次性条件if。这里有一个例子,如果余额为正,只从余额中减去借方:

const refBalance = document.getElementById("txtbalance");
function numDebit2() {
// do something here
// returns 50 as per the question description
return 50;
}
function numBalance(debit) {
const nBalance = parseInt(refBalance.innerText, 10);
refBalance.innerHTML = nBalance - debit;
}
function drawFaceTot() {
if (refBalance.innerHTML > 0) {
numBalance(numDebit2());
}
}
<div class="elements" id="txtbalance">1000</div>
<button class="button1" id="buttonNewHand" onclick="drawFaceTot()">new<br>hand</button>

请注意,这不会检查借方是否大于余额,因此您最终仍可能出现负余额