我有一个基本的if条件无效。我已经尝试使用==
而不是===
,尝试使用parseInt($value)
毫无兴趣。
请帮忙吗?
function displayReward(value, id) {
var output = '.'+id+"Output";
if($(value) === 0){
alert(value + ' - value is equal to 0');
}else{
alert(value + ' - value is greater than 0');
}
}
标记:
<input type="number" name="somename" id="someid" min="0" max="100" step="1"
value="0" onChange="displayReward(this.value,this.id);" disabled>
答案 0 :(得分:6)
您是否尝试过比较实际的value
?你不需要将你的变量包装在jQuery中,如果这就是存储,只需使用if (value === 0)
(如果你还需要解析它,那么if (parseInt(value) === 0)
TL; DR:太多jQuery:)
答案 1 :(得分:1)
你使用的是jQuery错误。此代码:$(value)
尝试将value
变量转换为jQuery对象,而不是。在大多数情况下,jQuery对象仅用于操作DOM。
答案 2 :(得分:0)
我认为你不需要jquery选择器($(value))。尝试
if( value == 0){
alert(value + ' - value is equal to 0');
}else{
alert(value + ' - value is greater than 0');
}
答案 3 :(得分:0)
为解析数据提供稍微更具体的答案,我遇到了数字变成字符串几次的问题。 ===运算符不仅会比较对象的值,还会比较数据的类型。所以while(string)"0"==0
(number)将等于true,"0"===0
将等同于false。为了使数据始终坚持,我在评估它们之前通过parseInt()
运行大多数事情,或坚持使用==。此外,如前所述,jQuery没有以这种方式使用。
如果您想了解更多信息: Which equals operator (== vs ===) should be used in JavaScript comparisons?
(这将是评论,但我缺乏评论代表)