6

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

如果我有divs ​</p>

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

和 jQuery

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

如果它的 html 值在 html 的 +/-10 之间,.isbetween我如何添加类。为此,例如。一个介于 5 和 25 之间的值。.value2.value

我不是很好,但我试过了,但它不起作用。

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

3 回答 3

17
 if (Math.abs(actual - comparison) <= 10) {
    //they're within 10
 }
于 2012-04-28T22:15:33.023 回答
3

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

5 < x < 10

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

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

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

另外,不要重复自己。进行一次转换,并将其存储在局部变量中。这使代码更具可读性。

这可以通过使用一个称为绝对值的概念变得更加简单。然后你可以做你的差异,看看它的绝对值是否小于或等于十。

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

if(delta <= 10) {
    $(".value2").addClass("isbetween");
}
于 2012-04-28T22:23:30.640 回答
0

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

var v1 = +$(".value").text();
var v2 = +$(".value2").text();
if (Math.abs(v1 - v2) <= 10) {
    $(".value2").addClass("isbetween");
}
于 2012-04-28T22:19:06.220 回答