If语句在我的jquery函数中不起作用?

If语句在我的jquery函数中不起作用?,jquery,Jquery,我有一个简单的计算器和两个标签,我正在建设。其中一个选项卡被名为.not active的类禁用。我想在#amount的值大于195时删除该类。然而,即使if语句已就位,它也会在值发生变化时删除类,即使值

我有一个简单的计算器和两个标签,我正在建设。其中一个选项卡被名为.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" ));

});

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

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

不能将int与string进行比较。将其更改为:

if (parseInt($('#amount').val()) > 195) {
您必须删除引号并使用
parseInt()

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

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

使用
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" ));

});

正如其他人已经指出的那样,问题在于比较的是字符串的排序顺序,而不是两个数字的值

e、 g

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

如果数字的范围不是天文数字(即不在标准整数的范围之外…这相当大),您可以使用
~
将字符串转换为整数。除了更短,它还比
parseInt
更快:

e、 g


也许
JqueryKing
愿意解释为什么他否决了这个正确而有用的备选答案?如果他是这样的专家,他应该已经知道这个把戏了:)
"2" > "123" == true!
if (~~$('#amount').val() > 195){