首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript不比较最小值大于最大值

JavaScript不比较最小值大于最大值
EN

Stack Overflow用户
提问于 2009-08-12 14:55:04
回答 2查看 7.1K关注 0票数 0

为什么JavaScript中数值的“大于”比较不起作用。下面的例子即使在最小数小于最大数时仍然返回true。

mini和maxi是表单输入值。此示例使用jQuery获取值,但可以很容易地将其剥离。

代码语言:javascript
复制
var mini = $('form#filterPrice input.min').val(); //eg. 500
var maxi = $('form#filterPrice input.max').val(); //eg. 1500

if( mini.valueOf() > maxi.valueOf() ) { //also used: mini > maxi
    alert('test'); //alerts "test" even when mini is less than maxi
$('form#filterPrice input.min').val( maxi ); //should switch values if mini > maxi
$('form#filterPrice input.max').val( mini );
}

将"mini > maxi“替换为"Math.max(mini,maxi) == mini”可以正常工作。因此,下面的方法是可行的:

代码语言:javascript
复制
var mini = $('form#filterPrice input.min').val(); //eg. 500
var maxi = $('form#filterPrice input.max').val(); //eg. 1500

if( Math.max(mini, maxi) == mini ) {
    alert('test'); 
$('form#filterPrice input.min').val( maxi );
$('form#filterPrice input.max').val( mini );
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-12 14:59:11

使用此行从字符串获取Int

代码语言:javascript
复制
if( parseInt(mini.valueOf(),10) < parseInt(maxi.valueOf(),10) ) { //also used: mini > maxi

你可以像字符串一样从dom中获取要比较的值。首先,你应该把它们解析成Int,然后再进行比较。此外,最好将10作为第二个参数,以确保数字将被解析为小数。

票数 4
EN

Stack Overflow用户

发布于 2009-08-12 14:58:19

在第一个示例中,您正在比较字符串和"1500" < "500"。在第二个示例中,Math.max将值转换为数字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1266723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档