我变得疯狂,试图理解JS中这段非常简单的代码中的错误:
<html>
<head>
<script type="text/JavaScript">
conta=0;
function numero()
{
var num= document.getElementById("n").value;
if(conta==0)
{
min= num;
mas=num;
}
if(mas<num)
{
mas= num;
}
if(min>num)
{
min=num;
}
conta++;
document.getElementById("massimo").value= mas;
document.getElementById("minimo").value= min;
document.getElementById("conta").value= conta;
}
</script>
</head>
<body>
<form>
Valore: <input id="n" type="text"> <input value="Inserisci" onclick="numero()" type="button">
<br>
Massimo: <input id="massimo" type="text"> Minimo: <input id="minimo" type="text"> Contatore: <input id="conta" type="text">
</form>
</body>
</html>
它应该非常简单:您将数字放在id =“n”的输入文本中,然后单击一个调用numero()函数的按钮。问题是它不起作用!例如,如果我先将数字33和数字6数字,则数字6被认为是最大值!
似乎是指令(mas
我很确定有一些非常愚蠢的错误,但我无法发现它。非常感谢大家的帮助!
吉安卡洛 - 意大利
答案 0 :(得分:2)
您需要在阅读时将值转换为数字。如果需要整数,请使用parseInt
如果需要支持浮点数,请使用parseFloat
。
function numero()
{
var num= parseInt(document.getElementById("n").value, 10);
if(conta==0)
{
min= num;
mas=num;
}
if(mas<num)
{
mas= num;
}
if(min>num)
{
min=num;
}
conta++;
document.getElementById("massimo").value= mas;
document.getElementById("minimo").value= min;
document.getElementById("conta").value= conta;
}
答案 1 :(得分:1)
您可以使用parseInt,parseFloat,也可以使用加号(+)前缀vars。请注意,您可以使用Math.max()和Math.min()。例如:
Math.min(2, 6); /*returns 2*/
Math.min(1, 2, 6, 9, 20) ; /*returns 1*/
此外,如果您拥有数组中的值,则可以使用Function.prototype.apply()来使用这些函数:
Math.min.apply(null, [3,5,8,9,30]); /*returns 3*/