我试图创建一个简单的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语句的解决方案?
答案 0 :(得分:1)
您无法使用此语法检查值是否在范围内:
if ($(".pacenumber").text() >= "60" < "80") {
这被解释为好像你已经写过
if (($(".pacenumber").text() >= "60") < "80") {
($(".pacenumber").text() >= "60")
将返回true
或false
。将布尔值与字符串进行比较时,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{}
}
//我添加了一个空终止符来正确关闭函数。不合理的值将导致颜色无变化。小心'数字'与文本数字。我删除了引号,因此它们成为字面数字。使数学更容易。