6

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

< div/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 のような構文を持つ他の言語) では、2 つの個別の比較を行い、ブール値と演算子 ( &&) を使用して比較を連鎖させる必要があります。

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

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

また、同じことを繰り返さないでください。一度変換を行い、それをローカル変数に格納します。これにより、コードがはるかに読みやすくなります。

これは、絶対値と呼ばれる概念を使用することで、さらに簡単にすることができます。次に、差を計算して、その絶対値が 10 以下かどうかを確認します。

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

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

2 つの値を取得し、それらを数値に変換し、それらの差の絶対値を比較して、条件を満たしている場合はクラスを追加する必要があります。

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