Javascript / JQuery / AJAX Else如果不起作用

时间:2016-01-21 18:32:58

标签: javascript jquery ajax

首先,我是初学者。我试图找到解决我的问题的方法。基本上我希望我的文本是基于数字的不同颜色,所以我使用了ELSE IF语句。它有效,但它没有,我尝试了两种不同的方式。我使用API​​来基本显示数字(来自传感器的温度)

有关示例,请参阅JFiddle,它还会显示显示该数字的其余代码。

http://jsfiddle.net/1brkww9h/98/

if (templr < 60) {
$("#displaylr").css("color", "#0000ff");
}
    else    if (templr < 70 && templr > 69) {
$("#displaylr").css("color", "#FFED00");
} else if (templr < 69 && templr > 68) {
    $("#displaylr").css("color", "#FFFC00");
} else if (templr < 68 && templr > 67) {
    $("#displaylr").css("color", "#EBEE12");
} else if (templr < 67 && templr > 66) {
    $("#displaylr").css("color", "#CFD42C");
} else if (templr < 66 && templr > 65) {
    $("#displaylr").css("color", "#ABB24A");
} else if (templr < 65 && templr > 64) {
    $("#displaylr").css("color", "#858C6C");
} else if (templr < 64 && templr > 63) {
    $("#displaylr").css("color", "#3D41AF");
} else if (templr < 63 && templr > 62) {
    $("#displaylr").css("color", "#0000FD");
} else if (templr < 62 && templr > 61) {
    $("#displaylr").css("color", "#424DFF");
} else {
    $("#displaylr").css("color", "#dddddd");

}

http://jsfiddle.net/1brkww9h/99/

if (templr < 1) {
   $("#displaylr").css("color", "#000000");
}
else if (templr = 69) {
  $("#displaylr").css("color", "#FFED00");
}
else if (templr = 68) {
  $("#displaylr").css("color", "#FFFC00");
}
else if (templr = 67) {
  $("#displaylr").css("color", "#EBEE12");
}
else if (templr = 66) {
  $("#displaylr").css("color", "#CFD42C");
}
else if (templr = 65) {
  $("#displaylr").css("color", "#ABB24A");
}
else if (templr = 64) {
  $("#displaylr").css("color", "#858C6C");
}
else if (templr = 63) {
  $("#displaylr").css("color", "#3D41AF");
}
else if (templr = 62) {
  $("#displaylr").css("color", "#0000FD");
}
else if (templr = 61) {
  $("#displaylr").css("color", "#424DFF");
}
else {
  $("#displaylr").css("color", "#dddddd");

}

1 个答案:

答案 0 :(得分:3)

您的templr变量是jQuery对象而不是数字。

jObject.text(var)会返回jObjectjObject.text()会返回jObject内的文字。

您需要更改代码

var templr = $("#displaylr").text(((retval.d.temp_degC * 1.8) + 32).toFixed(1));

var templr = (retval.d.temp_degC * 1.8) + 32;
$("#displaylr").text(templr.toFixed(1));

此外,if语句中的条件较新,只能在两者之间匹配。

数字6564将获得#dddddd,但数字64.1至64.9将获得#858C6C

如果你只想要一个60到70之间的蓝黄色渐变,你可以使用这个功能

function get_color(num, min_val, min_color, max_val, max_color)
{
    if (num <= min_val)
        return "rgb("+min_color.join(",")+")";
    if (num >= max_val)
        return "rgb("+max_color.join(",")+")";
    var t = (num-min_val)/(max_val-min_val);
    var color = [0,0,0];
    for (var j=0; j<3; j++)
        color[j] = Math.floor(min_color[j]*(1-t) + max_color[j]*t);
    return "rgb("+color.join(",")+")";
}

然后您可以用

替换所有if语句
$("#displaylr").css("color", get_color(templr, 60, [0x00,0x00,0xFF], 70, [0xFF,0xFF,0x00]));