如何根据元素内容更改颜色?

时间:2011-07-07 09:15:10

标签: javascript jquery

我想要为div.rating着色。但是,对于值0.01.02.0等,div背景始终为白色。请问错在哪里?

这是我的代码:

var rating = $(".rating").text();
if("0.0" < rating && rating < "1.6")
{
  $(".rating").css({background: "red", color: "rgb(140,60,60)"});
}
else if("1.7" < rating && rating < "2.4")
{
  $(".rating").css({background: "yellow", color: "rgb(140,140,60)"});
}
else if("2.5" > rating && rating > "5.0")
{
  $(".rating").css({background: "green", color: "rgb(60,140,60)"});
}
else
{
  $(".rating").css({background: "white", color: "rgb(60,60,60)"});
}

3 个答案:

答案 0 :(得分:3)

rating是一个String,你需要将它转换为float。使用您当前的代码,它永远不会匹配,您将获得默认情况,即白色

var rating = parseFloat($(".rating").text());

答案 1 :(得分:1)

在JavaScript中,这些条件都是真的:

  "0.0" < "5"; // true;
  "10" < "5"; // true;

您必须先将评级值转换为数字。试试这个:

 var rating = Number($('.rating').text()); // Converting the string into number
 if(Boolean(rating)) // If the text was a valid number
 {
     if ( 0 < rating && rating < 0)
     {
          // Now do what you want to do here.
     }
 }

答案 2 :(得分:0)

如果您只想设置颜色,则为背景色。不是背景。