最后,如果声明不起作用

时间:2016-04-08 00:25:06

标签: javascript if-statement

我试图创建一个简单的if语句来根据在另一个div中输入的数字来更改div的背景颜色。我已尝试对代码进行一些更改,但永远无法获得最后的if语句。

if ($(".pacenumber").text() <= "59") {
document.getElementById("paceheader").style.backgroundColor = "red";
} 
else
if ($(".pacenumber").text() >= "60" < "80") {
document.getElementById("paceheader").style.backgroundColor = "yellow";
}
else
if ($(".pacenumber").text() >= "80") {
document.getElementById("paceheader").style.backgroundColor = "green";
}

如果输入的数字是&lt; =&#34; 59&#34; div正确变为红色。

如果输入的数字是&gt; =&#34; 60&#34;和&lt; &#34; 80&#34; div正确变为黄色。

如果输入的数字是&gt; =&#34; 80&#34; div保持黄色,不会变为绿色。

是否有可能获得最后一个if语句的解决方案?

5 个答案:

答案 0 :(得分:1)

您无法使用此语法检查值是否在范围内:

if ($(".pacenumber").text() >= "60" < "80") {

这被解释为好像你已经写过

if (($(".pacenumber").text() >= "60") < "80") {

($(".pacenumber").text() >= "60")将返回truefalse。将布尔值与字符串进行比较时,false转换为"0"true转换为"1"。这两个都小于"80",因此测试将始终为真。

只需使用

else
if ($(".pacenumber").text() < "80") {

您不需要测试它是否至少为"60",因为之前的if会处理低于此值的所有值。如果它到达此else if,则必须为>= "60"

答案 1 :(得分:0)

正如评论者所说,第二个分支缺少一个部分,您应该使用数字而不是字符串进行比较。

function tt(t) {
   if (t <= 59) {
      return 1;
   } 
   else
   if (t >= 60 && t < 80) {
      return 2;
   }
   else
   if (t >= 80) {
      return 3;
   }
}

使用字符串(&#34; 80&#34;,&#34; 60&#34;),调用函数tt("080")将返回1.使用上面的定义,它返回3.

答案 2 :(得分:0)

您的代码可能只是以下内容:

var pace = parseInt($(".pacenumber").text(), 10);
var color = "green";

if (pace < 60) {
    color = "red";
} else if (pace  < 80) {
    color = "yellow";
}
document.getElementById("paceheader").style.backgroundColor = color;

请注意,缺少对jquery的重复调用以及设置背景颜色的单个位置

答案 3 :(得分:0)

只需更改

($(".pacenumber").text() >= "60" < "80") { 

($(".pacenumber").text() >= "60" && $(".pacenumber").text() < "80") {   

答案 4 :(得分:0)

 if ($(".pacenumber").text() <= 59) {
document.getElementById("paceheader").style.backgroundColor = "red";
} 
else
if ($(".pacenumber").text() >= 60 < 80) {
document.getElementById("paceheader").style.backgroundColor = "yellow";
}
else
if ($(".pacenumber").text() >= 80) {
document.getElementById("paceheader").style.backgroundColor = "green";
}
else{}
}

//我添加了一个空终止符来正确关闭函数。不合理的值将导致颜色无变化。小心'数字'与文本数字。我删除了引号,因此它们成为字面数字。使数学更容易。