只适用于一些数字,但不工作时,我尝试插入3-10为例。我不知道哪里出了问题。我还在学习Javascript。对不起,我的英语不好。谢谢
let btn = document.getElementById("btn")
let msg = document.getElementById("avvisi")
btn.addEventListener("click", () => {
let primo = document.forms['modulo']['primonum'].value
let secondo = document.forms['modulo']['secondonum'].value
for (let i = primo; i <= secondo; i++) {
console.log(i * i)
}
})<form id="modulo">
inizio <input type="text" id="primonum"> fine <input type="text" id="secondonum">
<input type="button" id="btn" value="go">
</form>
发布于 2021-02-14 17:51:19
您需要将字符串从输入转换为数字。最短的方法是在表达式前面使用unary plus +。
let btn = document.getElementById("btn");
let msg = document.getElementById("avvisi");
btn.addEventListener("click", () => {
let primo = +document.forms['modulo']['primonum'].value
let secondo = +document.forms['modulo']['secondonum'].value
for (let i = primo; i <= secondo; i++) {
console.log(i * i);
}
});<form id="modulo">
inizio <input type="text" id="primonum"> fine <input type="text" id="secondonum">
<input type="button" id="btn" value="go">
</form>
发布于 2021-02-14 17:52:02
primo和secondo是字符串,因为它们来自输入。因此,当您将i设置为primo时,i也是一个字符串。当比较"3“和"10”时,"3“比"10”大,因为它们的Unicode值,它跳过循环,因为在这种情况下i <= secondo为false。做i*i只能处理数字,所以javascript将它们转换成数字,它就能工作。解决方案是将字符串直接转换为数字。
let primo = Number(document.forms['modulo']['primonum'].value);
let secondo = Number(document.forms['modulo']['secondonum'].value);或
let primo = +document.forms['modulo']['primonum'].value;
let secondo = +document.forms['modulo']['secondonum'].value;https://stackoverflow.com/questions/66194128
复制相似问题