如果Statement不能在我的jquery函数中工作?

时间:2015-06-03 12:06:49

标签: jquery

我有一个简单的计算器,正在构建2个选项卡。使用名为.not-active的类禁用其中一个选项卡。我希望在#amount的值为>时删除该类。 195.然而,即使if语句到位,它也会在值改变时删除类,即使值为< 195.

这是我的jquery函数:

$(function() {
$( "#slider-range-min1" ).slider({
  range: "min",
  value: 40,
  min: 5,
  max: 700,
  step: 5,
  slide: function( event, ui ) {
    $( "#amount" ).val( ui.value );
    if ($('#amount').val() > "195") {
        $('#l2').removeClass('not-active');
    };

  }
});
$( "#amount" ).val( $( "#slider-range-min1" ).slider( "value" ));

});

5 个答案:

答案 0 :(得分:2)

使用parseInt和整数

$(function() {
$( "#slider-range-min1" ).slider({
  range: "min",
  value: 40,
  min: 5,
  max: 700,
  step: 5,
  slide: function( event, ui ) {
    $( "#amount" ).val( ui.value );
    if (parseInt($('#amount').val()) > 195) {
        $('#l2').removeClass('not-active');
    };

  }
});
$( "#amount" ).val( $( "#slider-range-min1" ).slider( "value" ));

});

答案 1 :(得分:0)

要正确比较,您需要确保两个值都是整数。您可以使用parseInt()转换#amount值。试试这个:

if (parseInt($('#amount').val(), 10) > 195) {
    $('#l2').removeClass('not-active');
};

答案 2 :(得分:0)

您无法将int与字符串进行比较。将其更改为:

if (parseInt($('#amount').val()) > 195) {

您必须删除引号并使用parseInt()

答案 3 :(得分:0)

使用 parseInt() 。实际上,您从输入字段类型获得的值是字符串,因此您需要转换为整数。您无法使用>运算符检查字符串类型。

if (parseInt($('#amount').val(), 10) > 195) {
        $('#l2').removeClass('not-active');
    };

答案 4 :(得分:0)

正如其他人已经指出的那样,问题是你要比较字符串的校对顺序而不是两个数字的值。

e.g。

"2" > "123" == true!

您需要先将字符串转换为数字,然后与另一个数字进行比较。

如果数字在范围内不是天文数字(即不在标准整数的范围之外......这是非常大的),您可以使用~~将字符串转换为整数。除了更短,它也比parseInt

更快

e.g。

if (~~$('#amount').val() > 195){