2017-07-14 4 views
0

セル内の数値に従ってテーブルデータセルの背景色を変更する次のコードがあります。
他のすべての比較が期待どおりに機能しますが、(val <(-3000))の比較はブロックに入力されません。Javascriptで負の値を比較すると正しく動作しない

//Change Background Color for all P/L values 
$(".PLcolors").each(function(index, value) { 

    var val = Number(parseFloat($(this).text(), 10)); 

    console.log("value is " + val); 

    if (val === 0) { 
    $(this).css("background-color", "#DCDCDC"); 
    } else if ((val => -3000) && (val <= 3000)) { 
    $(this).css("background-color", "#F0E68C"); 
    } else if (val < (-3000)) { 
    $(this).css("background-color", "#FF0000"); 
    } else if ((val > 3000)) { 
    $(this).css("background-color", "#008000"); 
    } 
}); 

ヴァル変数のタイプは数ある:
これはコードです。

+2

あなた 'val'変数の値である何より明確に – amoeba

+1

のためのフィドルを共有して下さい! – user3478148

+2

'parseFloat'は引数を1つだけとります。 'console.log($(this).text())'を与えるものは何ですか? – Sergio

答えて

1

JS内にエラーがあり、>=の代わりに=>を設定しました。それを修正:

else if (val >= -3000 && val <= 3000) { 

//Change Background Color for all P/L values 
 
$(".PLcolors").each(function(index, value) { 
 

 
    var val = Number(parseFloat($(this).text(), 10)); 
 

 
    console.log("value is " + val); 
 

 
    if (val === 0) { 
 
    $(this).css("background-color", "#DCDCDC"); 
 
    } else if (val >= -3000 && val <= 3000) { 
 
    $(this).css("background-color", "#F0E68C"); 
 
    } else if (val < -3000) { 
 
    $(this).css("background-color", "#FF0000"); 
 
    } else if ((val > 3000)) { 
 
    $(this).css("background-color", "#008000"); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li class="PLcolors">1</li> 
 
    <li class="PLcolors">-3001</li> 
 
    <li class="PLcolors">3001</li> 
 
    <li class="PLcolors">0</li> 
 
</ul>

+0

ああ私の神!そのような小さなタイプミス!それを指摘してくれてありがとう!問題はすべて期待どおりに動作します! –