Javascript JS中的数学计算器脚本错误
我的剧本有什么遗漏吗 当我按下减号按钮时,一切都正常,但当我按下加号按钮时,计算器就出错了。它的节目1,11,21,~一切都以1结束 这是我的密码: 函数myFunctionDown{ var x=document.getElementByIdmyNumber.value; 变量y=1; var a=x-y*1; document.getElementByIdmyNumber.steup-1; document.getElementByIddemo.innerHTML=a; } 函数myFunctionUp{ var x=document.getElementByIdmyNumber.value; 变量y=1; 变量a=x+y*1; document.getElementByIdmyNumber.stepUp1; document.getElementByIddemo.innerHTML=a; } - + $0试试这个:- 使用parseInt函数将字符串值转换为数字类型 函数myFunctionDown{ var x=parseIntdocument.getElementByIdmyNumber.value; 变量y=1; var a=x-y*1; document.getElementByIdmyNumber.steup-1; document.getElementByIddemo.innerHTML=a; } 函数myFunctionUp{ var x=parseIntdocument.getElementByIdmyNumber.value; 变量y=1; 变量a=x+y*1; document.getElementByIdmyNumber.stepUp1; document.getElementByIddemo.innerHTML=a; } - +Javascript JS中的数学计算器脚本错误,javascript,html,Javascript,Html,我的剧本有什么遗漏吗 当我按下减号按钮时,一切都正常,但当我按下加号按钮时,计算器就出错了。它的节目1,11,21,~一切都以1结束 这是我的密码: 函数myFunctionDown{ var x=document.getElementByIdmyNumber.value; 变量y=1; var a=x-y*1; document.getElementByIdmyNumber.steup-1; document.getElementByIddemo.innerHTML=a; } 函数myFun
$0您需要将字符串设置为整数/数字,因为它当前是一个字符串,所以它连接值而不是添加值。可以使用parseIntdocument.getElementByIdmyNumber.value 这将使值变成整数,例如1变成1 函数myFunctionDown{ var x=document.getElementByIdmyNumber.value; 变量y=1; var a=x-y*1; document.getElementByIdmyNumber.steup-1; document.getElementByIddemo.innerHTML=a; } 函数myFunctionUp{ var x=parseIntdocument.getElementByIdmyNumber.value; 变量y=1; 变量a=x+y*1; document.getElementByIdmyNumber.stepUp1; document.getElementByIddemo.innerHTML=a; } - +
$0您需要将输入值解析为一个数字,因为所有输入值实际上都是字符串 函数myFunctionDown{ var x=parseIntdocument.getElementByIdmyNumber.value; 变量y=1; var a=x-y*1; document.getElementByIdmyNumber.steup-1; document.getElementByIddemo.innerHTML=a; } 函数myFunctionUp{ var x=parseIntdocument.getElementByIdmyNumber.value; 变量y=1; 变量a=x+y*1; document.getElementByIdmyNumber.stepUp1; document.getElementByIddemo.innerHTML=a; } - +
$0首先,您必须将输入值转换为数字,无需将其乘以1。使用parseInt函数进行转换
<button onclick="myFunctionDown()">-</button>
<input type="number" id="myNumber" value="0">
<button onclick="myFunctionUp()">+</button>
<br/><br/>
$ <span id="demo">0</span>
<script>
function myFunctionDown() {
var x = parseInt(document.getElementById("myNumber").value);
var y = 1;
var a = x-y;
document.getElementById("myNumber").stepUp(-1);
document.getElementById("demo").innerHTML = a;
}
function myFunctionUp() {
var x = parseInt(document.getElementById("myNumber").value);
var y = 1;
var a = x+y;
document.getElementById("myNumber").stepUp(1);
document.getElementById("demo").innerHTML = a;
}
</script>
Do+document.getElementByIdmyNumber.value。问题解决了
原因:
按定义document.getElementByIdmyNumber.value返回x中的字符串值
JS迫切需要防止编译器错误。因此,在执行x+y操作时,即数字+字符串。默认情况下,JS会自动将数字值类型转换为字符串,并将“+”解释为串联运算符。
你可以用同样的JS来帮助你。当JS处理字符串前的“+”符号时,如果该字符串只不过是数字字符。它被转换成数字
有关详细信息,请参阅和
函数myFunctionDown{
var x=+document.getElementByIdmyNumber.value;
变量y=1;
var a=x-y*1;
document.getElementByIdmyNumber.steup-1;
document.getElementByIddemo.innerHTML=a;
}
函数myFunctionUp{
var x=+document.getElementByIdmyNumber.value;
变量y=1;
变量a=x+y*1;
document.getElementByIdmyNumber.stepUp1;
document.getElementByIddemo.innerHTML=a;
}
-
+
$0在您的第一句话中应该是数字而不是整数,您需要将数字设置为整数。您需要将字符串解析为数字。@chŝdk啊,谢谢哈哈。更新:事实上JavaScript中没有整数类型,应该是数字。@chŝdk说得好。。!!!将是数字而不是整数。同样,JavaScript中没有整数类型,它应该是数字。啊,是的。它应该是数字类型。编辑