如果数字在两个数字之间加/减10个addclass

时间:2012-04-28 22:13:08

标签: javascript jquery if-statement

http://jsfiddle.net/kM8xE/2/

如果我有div s

<div class="value">15</div>
<div class="value2">20</div>​

和jQuery

var actual = $(".value").html();
var comparison = $(".value2").html();

如果html值在.isbetween的html的+/- 10之间,我怎样才能将.value2添加到.value。为此例如。 5到25之间的值。

我不太好但是我已经尝试过但它不起作用。

if(parseInt(actual)-10 <= parseInt(comparison) <= parseInt(actual)+10){
$(".value2").addClass("isbetween");
}

3 个答案:

答案 0 :(得分:13)

 if (Math.abs(actual - comparison) <= 10) {
    //they're within 10
 }

答案 1 :(得分:3)

这不起作用的原因是你不能像这样链接比较:

5 < x < 10

在Javascript(以及其他具有类似c语法的语言)中,您必须进行两次单独的比较,并使用布尔值和运算符(&&)将比较链接在一起:

var actualValue = parseInt(actual);
var comparisonValue = parseInt(comparison);

if(actualValue - 10 <= comparisonValue && comparisonValue <= actualValue + 10) {
    $(".value2").addClass("isbetween");
}

此外,don't repeat yourself。进行一次转换,并将其存储在局部变量中。这使代码更具可读性。

使用名为absolute value的概念可以使这更加简单。然后你就可以区别对待,看看它的绝对值是否小于或等于十。

var delta = Math.abs(parseInt(actual) - parseInt(comparison));

if(delta <= 10) {
    $(".value2").addClass("isbetween");
}

答案 2 :(得分:0)

您必须获取这两个值,将它们转换为数字,比较它们的差异的绝对值,然后在符合条件的情况下添加该类:

var v1 = +$(".value").text();
var v2 = +$(".value2").text();
if (Math.abs(v1 - v2) <= 10) {
    $(".value2").addClass("isbetween");
}