大家好我有一个代码问题,我希望看到修复:
这是我的else if
声明:
var x = parseInt(2);
var out = document.getElementById("output");
var w = prompt("hunt or farm? dare to fight?");
out.innerHTML = w;
else if (w === "farm") {
var farm = document.getElementById("farm").innerHTML;
farm = parseInt(farm) + x;
document.getElementById("farm").innerHTML = farm;
}
在html中使用div我已经链接了某些东西来制作文本基础策略游戏。但我的问题是农场是NaN(不算是一个数字)我放置了#34; parseInt"尝试解决这个问题,但它仍然提出了" NaN"。我该怎么做以确保而不是2 + 2 = 22使2 + 2 = 4
答案 0 :(得分:0)
try this hope its working for you
var farm = document.getElementById("farm").innerHTML;
farm = parseInt(farm + x);
document.getElementById("farm").innerHTML = parseInt(farm);}
答案 1 :(得分:0)
您需要确保具有farm
id的innerHTML的元素以数字开头,而不是字母。 x
也是如此。此外,他们需要至少有一个号码。试试parseInt("hello12345")
,您将获得NaN
。 parseInt("hello")
也是如此。尝试添加NaN和一个数字,你仍然会得到NaN
,就像你可能正在做的那样。 parseInt("hello12345hello") + parseInt("12345hello")
将返回NaN
但parseInt("12345hello")
将返回12345
。此代码将使用正则表达式"hello12345".replace(/^(\D+)/, "")
解析前导字母,结果为12345
。但是,您可能想要在使用之前检查是否有任何数字,因为只有字母才会生成NaN
。有关javascript parseInt
函数何时返回NaN
的详细信息,请查看文档https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt
答案 2 :(得分:0)
看起来farm
是div / block元素:
最好检查farm
内的值是否有效,并确保其有效数字。
var farm = document.getElementById("farm").innerHTML.replace(/\s/gm,"");
// trimming any empty spaces
// checking for is it a valid number
farm = farm!="" && !isNaN(farm)? parseInt(farm) + x : x;
document.getElementById("farm").innerHTML = farm;
<强> DEMO 强>
如果farm
是输入文本框,只需将innerHTML
替换为value
,相同的代码就可以正常使用
答案 3 :(得分:0)
这对我很有用,假设我明白你要做什么。我将farm's
innerHTML传递给Number()
构造函数。替代方案是使用parseInt
或更好的速记变体:+farm.innerHTML + x
。
var x = parseInt(2),
w = prompt("hunt or farm? dare to fight?");
if (w === 'farm') {
var farm = document.getElementById("farm"),
out = document.getElementById("output"),
farmValue = Number(farm.innerHTML) + x;
out.innerHTML = w;
farm.innerHTML = farmValue;
};
答案 4 :(得分:0)
因为你已经使用innerHtml获取值所以我假设这不是一个输入元素。
var farm = document.getElementById("farm").innerHTML;
如果是这种情况,那么确保你得到的innerHtml是一个数字,如果是,那么pasreInt的结果将是一个数字。 由于innerHtml也包含html标签,因此您可以尝试使用 innerText 。 它将始终返回包含在元素内的文本,该元素可以应用parseInt / parseFloat来获取它的整数部分。
希望这有帮助。