我有一个简单的计算器,正在构建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" ));
});
答案 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){