检查数字是否在两个数字之间

时间:2015-01-22 11:36:43

标签: javascript jquery

我有一个名为'age'的变量,如果它在两个数字之间,我正在努力解决这个问题。在这种情况下,我想知道年龄是否在30到80之间。

到目前为止,我有这个......

if ( age >= 30 && age <=80 ) {
            $('.display').each(function() {
                $(this).css('display', '');
            });
            }

如果年龄低于30,那么。如果不显示.display div,则效果很好,但检查数字是否小于80的最后一部分不起作用。

有人能指出我能读到的类似功能的方向吗?或者我做了一些明显错误的事情?

5 个答案:

答案 0 :(得分:15)

此功能检查号码n是否在ab之间

function isBetween(n, a, b) {
   return (n - a) * (n - b) <= 0
}

答案 1 :(得分:4)

您为确定值是否介于两个值之间而编写的条件很好。这里似乎发生的事情是,一旦达到age >= 30的条件,例如31,display属性会更新,但一旦超过80,它就不会恢复任何样式更改。

在jQuery中,您通常会使用show和hide方法,而不是修改display CSS属性,例如.toggle()

// only show if age is between 30 and 80
$('.display').toggle(age >= 30 && age <=80);

答案 2 :(得分:2)

''并非display属性的正确设置。根据您的描述,您希望使用block。此外,您不需要在此处使用each()循环。试试这个:

if (age >= 30 && age <= 80) {
    $('.display').css('display', 'block');
}

Example fiddle

答案 3 :(得分:0)

jQuery很奇怪。

在纯JavaScript中:

this.style.display = "";

...将删除在JavaScript(或jQuery或原始HTML display属性)中创建的任何style="..."设置,允许CSS定义的值(或默认值)接管

jQuery需要某种黑客,我现在甚至都不记得让它工作......当JS很简单时,不值得IMO。

答案 4 :(得分:0)

正如我所说in this post,您可以使用与此类似的功能:

function between(n, a, b)
{
    return ((a==n)&&(b==n))? true : ($n-$a)*($n-$b)<0;
}

并不限于整数,因为其他函数都是。