即使值相同,条件测试也会失败

时间:2014-01-02 22:11:33

标签: javascript jquery

我有一个基本的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>

4 个答案:

答案 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?

(这将是评论,但我缺乏评论代表)