インクリメントを指定する変数を使用して、javascript で for ループを実行しようとしています。次の関数は、DIV の以前の値 (oldVal) と変更された値 (newVal) を使用して、別の DIV に表示される合計 (curtot) を変更します。
function spinctrltotaling(sender, newVal) {
var curtot = Number(document.getElementById("totaling").innerHTML);
console.log(curtot);
var transtot = 0;
var ld = "";
var oldVal = sender.GetOldValue();
console.log(oldVal);
if (newVal - oldVal >= 0) {
ld = "i=i+1";
} else {
ld = "i=i-1";
}
;
console.log(ld);
for (i = oldVal; i <= newVal; ld) {
console.log(i);
if (i <= 0 & ld == "i=i+1") {
transtot = transtot - (i + 1);
console.log("i <= 0");
} else if (i < 0 & ld == "i=i+1") {
transtot = transtot + i;
console.log("i < 0");
} else if (i >= 0 & ld == "i=i+1") {
transtot = transtot - (i - 1);
console.log("i >= 0");
} else {
transtot = transtot + i;
console.log("else");
}
}
;
if (curtot - transtot < 0) {
sender.SetCurrentValue = oldVal;
} else {
document.getElementById("totaling").innerHTML = transtot;
document.getElementById("debuging").innerHTML = "curtot=" + curtot
+ " oldVal=" + oldVal + " newVal=" + newVal
+ " transtot=" + transtot;
}
;
}
コンソールの結果:
0
0
"i=i+1"
0
"i <= 0"
1
"i >= 0"
2 つの問題があります。
- IF ELSE は、予想していた結果ではなく、4 つの可能な結果のうちの 3 つをコンソールに表示します。
- ループが 1 回しかないはずなのに、ループが終了しません。
私は愚かな間違いを犯したことを知っていますが、それを見ることができません。