我有一个名为'age'的变量,如果它在两个数字之间,我正在努力解决这个问题。在这种情况下,我想知道年龄是否在30到80之间。
到目前为止,我有这个......
if ( age >= 30 && age <=80 ) {
$('.display').each(function() {
$(this).css('display', '');
});
}
如果年龄低于30,那么。如果不显示.display div,则效果很好,但检查数字是否小于80的最后一部分不起作用。
有人能指出我能读到的类似功能的方向吗?或者我做了一些明显错误的事情?
答案 0 :(得分:15)
此功能检查号码n
是否在a
和b
之间
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');
}
答案 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;
}
并不限于整数,因为其他函数都是。