为什么这个javascript函数停止工作
Why does this javascript function stop working?
我这里有一个简单的比较应用程序,它接受2个数字,查看哪个数字更大,然后相应地更改段落的内部HTML。当我运行它时,它似乎工作正常,但当我在第3次或第4次左右开始插入新数字时,它停止工作,并开始说数字越低越高。这种情况发生时似乎是随机的。有人能向我解释一下为什么会发生这种事吗?
HTML:
<p>Enter 2 numbers to see which one is highest.</p>
<input type="text" id="firstnumber" class="inputs" class="clearme"/>
<input type="text" id="secondnumber" class="inputs"/>
<input type="button" class="inputs" value="submit" id="button"/>
<p id ="message" style="color: blue;">Answer appears here.</p>
CSS:
.inputs {
float : left;
}
#secondnumber {
clear: both;
}
#button {
clear: left;
}
p {
clear: both;
}
JavaScript:
function myfunction(num1, num2) {
if (num1 > num2) {
document.getElementById("message").innerHTML = "The Higher number is " + num1 + ", which was the first value.";
} else {
document.getElementById("message").innerHTML = "The Higher number is " + num2 + ", which was the second value.";
}
}
document.getElementById('button').onclick = function(){
var x = document.getElementById("firstnumber").value;
var y = document.getElementById("secondnumber").value;
myfunction(x, y);
console.log(x);
console.log(y);
}
JSFiddle
非常感谢。
您需要先转换数字,然后再进行比较。您可以通过使用Number()函数或一元加号来实现这一点。
if (Number(num1) > Number(num2)) {
//...
};
JSFiddle
或
if (+num1 > +num2) {
//...
};
JSFiddle
需要将字符串转换为数字。
Number(Str)
parseInt(Str, 10)
+Str
很少有办法是:
function myfunction(num1, num2) {
if (num1 > num2) {
document.getElementById("message").innerHTML = "The Higher number is " + num1 + ", which was the first value.";
} else {
document.getElementById("message").innerHTML = "The Higher number is " + num2 + ", which was the second value.";
}
}
document.getElementById('button').onclick = function() {
var x = Number(document.getElementById("firstnumber").value);
var y = Number(document.getElementById("secondnumber").value);
myfunction(x, y);
console.log(x);
console.log(y);
}
.inputs {
float: left;
}
#secondnumber {
clear: both;
}
#button {
clear: left;
}
p {
clear: both;
}
<p>
Enter 2 numbers to see which one is highest.
</p>
<input type="text" id="firstnumber" class="inputs" class="clearme" />
<input type="text" id="secondnumber" class="inputs" />
<input type="button" class="inputs" value="submit" id="button" />
<p id="message" style="color: blue;">
Answer appears here.
</p>
将输入的值作为字符串进行比较。
因此,像"10"这样的数字看起来会小于"2",因为它们是用字典而不是数字进行比较的。当你比较它们时,你可以通过在num1和num2参数中添加一个+来解决这个问题
if (+num1 > +num2)
相关文章:
- 更改智能表中的页面将停止JQuery函数的工作
- 我将此代码移动到一个单独的函数中,它停止工作,为什么
- 当if条件被添加到循环中时,Javascript函数将停止工作
- 添加第二个参数时,Javascript函数将停止工作
- 一个Javascript函数中的错误导致其他函数停止工作
- 在jQuery.html()更新时,其他函数将停止工作
- 函数在简单的更改后突然停止工作
- 使用引导:切换导航栏时,JS 函数停止工作
- 画布的 .fillText 函数似乎在首次调用后停止工作
- .click() 函数在同一页面上提交表单后停止工作
- 函数停止代码工作
- JQuery 函数突然停止工作,转换 Javascript 参数时出错
- 添加参数时调用javascript函数停止工作,这真的不大声吗
- 添加 tr 标签会导致函数停止工作
- 添加int时,Javascript函数停止工作
- youtube API函数停止工作了
- 当我添加jquery验证函数时,我的其他函数停止工作
- 添加更多函数后,函数停止工作
- Javascript条件语句会导致其他函数停止工作
- 为什么这个javascript函数停止工作