我在将变量添加到一起时遇到了一个小问题,我设置了一个输入数字字段来设置变量。然后我所做的就是发布3个数字,第一个是原始数据,第二个是第一个加上原始数据,然后第三个是第二个加上原始数字。但由于某种原因(显然我错过了一些东西),因为我的变量输出为字符串而不是整数?
function submit() {
var input = document.getElementById("input").value;
var p1 = parseInt(input);
var p2 = parseInt(p1) + input;
var p3 = parseInt(p2) + input;
document.getElementById("p1").innerHTML = p1;
document.getElementById("p2").innerHTML = p2;
document.getElementById("p3").innerHTML = p3;
}

<label for="input">Value</label><br>
<input type="number" id="input"><br>
<button id="btnSubmit" onclick="submit()">Submit</button>
<p id="p1">0</p>
<p id="p2">0</p>
<p id="p3">0</p>
&#13;
答案 0 :(得分:1)
document.getElementById(“input”)。value返回一个字符串值,需要将其转换为整数类型。在parseInt
变量声明上使用input
,而不是在其他任何位置进行。
var input = parseInt(document.getElementById("input").value);
function submit() {
var input = parseInt(document.getElementById("input").value, 10);
var p1 = input;
var p2 = p1 + input;
var p3 = p2 + input;
document.getElementById("p1").innerHTML = p1;
document.getElementById("p2").innerHTML = p2;
document.getElementById("p3").innerHTML = p3;
}
<label for="input">Value</label><br>
<input type="number" id="input"><br>
<button id="btnSubmit" onclick="submit()">Submit</button>
<p id="p1">0</p>
<p id="p2">0</p>
<p id="p3">0</p>
答案 1 :(得分:0)
确保您始终如一地使用数字进行算术运算:
function submit() {
var input = document.getElementById("input").value;
var p1 = parseInt(input);
var p2 = 2*p1;
var p3 = p2 + p1;
document.getElementById("p1").innerHTML = p1;
document.getElementById("p2").innerHTML = p2;
document.getElementById("p3").innerHTML = p3;
}
&#13;
<label for="input">Value</label><br>
<input type="number" id="input"><br>
<button id="btnSubmit" onclick="submit()">Submit</button>
<p id="p1">0</p>
<p id="p2">0</p>
<p id="p3">0</p>
&#13;
这只是JavaScript将表达式解释为字符串连接与算术的问题,后者是您要实现的目标。
答案 2 :(得分:0)
您正在进行字符串连接。使用parseInt()
获取input
function submit() {
var input = document.getElementById("input").value;
var p1 = parseInt(input);
var p2 = parseInt(p1) + parseInt(input);
var p3 = parseInt(p2) + parseInt(input);
document.getElementById("p1").innerHTML = p1;
document.getElementById("p2").innerHTML = p2;
document.getElementById("p3").innerHTML = p3;
}
&#13;
<label for="input">Value</label><br>
<input type="number" id="input"><br>
<button id="btnSubmit" onclick="submit()">Submit</button>
<p id="p1">0</p>
<p id="p2">0</p>
<p id="p3">0</p>
&#13;
答案 3 :(得分:0)
input
是一个字符串,这就是您使用parseInt(input)
将其强制转换为整数的原因。
var p2 = parseInt(p1) + input;
行的输入为"42"
输入,如下所示:var p2 = parseInt(parseInt("42")) + "42";
,这意味着您连接一个字符串而不是添加两个整数。< / p>
您可以使用var p2 = p1 + parseInt(input);
或var p2 = p1 * 2;
和var p3 = p1 * 3
,这可能是一个更简单的解决方案。
答案 4 :(得分:0)
在javascript D0 CF 11 E0 A1 B1 1A E1
中,你在做什么
'1' + 1 = 11
你应该解析输入而不是p1
这里是更新的代码段
p1 = parseInt(1) //input = 1
p2 = 1 + '1' // p1 = 1, input = '1'
output = '11'
p3 = 1 + '11' // p2 = 1, input = '1'
output = '111'
function submit() {
var input = parseInt(document.getElementById("input").value);
var p1 = input;
var p2 = p1 + input;
var p3 = p2 + input;
document.getElementById("p1").innerHTML = p1;
document.getElementById("p2").innerHTML = p2;
document.getElementById("p3").innerHTML = p3;
}