Jquery IF声明少于问题

Jef*_*der 0 jquery if-statement conditional-statements

这应该很简单,但我似乎错过了一些东西..

start = $('[name=start]').val().split('.');
last = start[3];
end = $('[name=end]').val();

if (end < last) {
   alert('BLAH BLAH');
   return false;
}
Run Code Online (Sandbox Code Playgroud)

我已经提醒了价值观,我可以看到一个测试

最后= 100

结束= 90

因此if ( 90 < 100 )应该显示警报但不是.

我究竟做错了什么 ?谢谢

Jon*_*Jon 5

您要比较的值是字符串,而不是整数,因此它们按字典顺序进行比较.在浏览器控制台中尝试此操作:

90 < 100       => true
"90" < "100"   => false
Run Code Online (Sandbox Code Playgroud)

首先将它们转换为数字以进行数字比较:

last = +start[3];   // The + prefix is equivalent to Number(start[3])
end = +$('[name=end]').val();
Run Code Online (Sandbox Code Playgroud)

请注意,如果任一输入不是有效数字,+/ Number(...)approach将返回NaN; 或者你可以使用parseInt哪种语义有些不同.