我有一个if语句,并希望继续检查条件是否为真。
我为此找到了解决方案并创建了以下内容:
var interval = 400;
var timer = window.setInterval(function(){
if (wood > mainBuildingCostsWood.innerHTML) {
alert('Works');
window.clearInterval(timer);
}
}, interval);
上面的代码应该检查用户当前的木材是否超过250.木材自动计数1。所以一段时间后,用户的木材应该超过250。
不幸的是,这段代码不起作用,任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
innerHTML
是一个字符串,而我猜测wood
是一个数字。先做parseFloat()
。
答案 1 :(得分:0)
确保“范围”一切正常:
var wood;
...
var mainBuildingCostsWood = document.getElementById("<your_element>");
mainBuildingCostsWood.innerHTML = 250;
...
var timer = setInterval(function(){
if (wood > mainBuildingCostsWood.innerHTML) {
alert('Works');
clearInterval(timer);
}
}, 400);
答案 2 :(得分:0)
使用parseInt();
将string
转换为INT
var interval = 400;
var wood = 250;//
var WoodCosts = parseInt(document.getElementById("mainBuildingCostsWood").innerHTML);//user wood
var timer = window.setInterval(function(){
if (wood > WoodCosts) {
document.getElementById("status").innerHTML = 'Works';
window.clearInterval(timer);
}
}, interval);
&#13;
<div id='mainBuildingCostsWood'>20</div>
<div id='status'></div>
&#13;
答案 3 :(得分:0)
通过将“更改”变量放在区间函数中来修复它。
var interval = 400;
var timer = window.setInterval(function(){
/* Current resources */
var wood = document.getElementById('wood').innerHTML;
var iron = document.getElementById('iron').innerHTML;
var clay = document.getElementById('clay').innerHTML;
if (wood > parseInt(mainBuildingCostsWood.innerHTML)) {
alert('Works');
window.clearInterval(timer);
}
}, interval);