IF语句中的变量不变

时间:2015-10-13 21:22:03

标签: javascript

我是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);

2 个答案:

答案 0 :(得分:5)

士气是一个字符串值,因为你追加&#34;%&#34;而不是数字。

您正在将字符串与整数进行比较。

答案 1 :(得分:0)

我认为当你计算士气时会出现问题。通过将+"%添加到计算中,可以将士气从数字类型更改为字符串。之后,您的比较变得无法预测。

最好让士气成为一个数字,并在分配到innerHTML

时更改为字符串
morale = Math.floor(money * 0.0009);
....
document.getElementById('max_morale') = 

max_morale.toString()+'%';