如果我有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");
}
答案 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");
}