我是JS初学者,所以我遇到了这个问题。
我有一个叫做士气的变量,它根据一些数学进行更新。这工作得很好。我现在要做的事情基本上是记录最高数量的士气,这样我可以根据最大士气做一些数学。即使士气低落,max_morale也没有改变。我认为这段代码应该可以正常工作,但事实并非如此。我的HTML中有<span id="max_morale">0</span>
。请帮忙!
var morale = 0;
var max_morale = 0;
var money = 0;
function increment(number){
money = money + number;
document.getElementById("money").innerHTML = addCommas(money);
};
function moraleCalc(){
morale = Math.floor(money * 0.0009)+"%";
document.getElementById('morale').innerHTML = morale;
if(morale > max_morale){
max_morale = morale;
document.getElementById('max_morale').innerHTML = max_morale;
};
};
window.setInterval(function(){
moraleCalc();
}, 1000);
答案 0 :(得分:5)
士气是一个字符串值,因为你追加&#34;%&#34;而不是数字。
您正在将字符串与整数进行比较。
答案 1 :(得分:0)
我认为当你计算士气时会出现问题。通过将+"%
添加到计算中,可以将士气从数字类型更改为字符串。之后,您的比较变得无法预测。
最好让士气成为一个数字,并在分配到innerHTML
时更改为字符串morale = Math.floor(money * 0.0009);
....
document.getElementById('max_morale') =
max_morale.toString()+'%';