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

zdwk9cvp  于 2023-03-16  发布在  Java
关注(0)|答案(5)|浏览(462)

我有一个变量叫做“年龄”,我想知道它是否在两个数字之间,在这个例子中,我想知道年龄是否在30到80之间。
到目前为止我有这个...

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

如果年龄小于30,那么.display div就不会显示,但是检查数字是否小于80的最后一部分不起作用。
有没有人能给我指出一个我可以阅读的类似函数的方向?或者我做了什么明显的错误?

zed5wv10

zed5wv101#

此函数用于检查编号n是否在ab之间

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

iqxoj9l92#

您编写的用于确定一个值是否介于两个值之间的条件是正确的,但这里似乎发生的情况是,一旦达到age >= 30的条件(例如31),display属性就会更新,但一旦超过80,它就不会恢复任何样式更改。
在jQuery中,通常使用show和hide方法,如.toggle(),而不是修改display CSS属性:

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

x4shl7ld3#

''不是display属性的正确设置。根据您的描述,您需要使用block。此外,您不需要在此处使用each()循环。请尝试以下操作:

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

Example fiddle

t1rydlwq

t1rydlwq4#

正如我在这篇文章中所说,你可以使用一个类似于这个函数:

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

并且它不像其他函数那样限于整数。

yvfmudvl

yvfmudvl5#

jQuery很奇怪。
在纯JavaScript中:

this.style.display = "";

...将删除JavaScript(或jQuery,或原始HTML style="..."属性)中的任何display设置,允许CSS定义的值(或默认值)接管。
jQuery需要一些我现在都不记得的技巧来让它工作...不值得我这么做,当JS是如此简单的时候。

相关问题