2017-07-14 70 views
0

我有以下代码,它根据单元格内的数值更改表格数据单元格的背景颜色。
虽然所有其他比较按预期工作,但比较永不进入该块。
这是代码:比较负值在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"); 
    } 
}); 

VAL变量的类型是数字。

+2

请分享小提琴,更清晰, – amoeba

+1

你是什么'val'变量的值? – 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

天啊!这么小的错字!感谢您指出!问题现在解决了所有预期的问题! –