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