2012-11-19 74 views
-1

所示代码的用途是按时间添加一些提醒。这些案例是针对一周中的不同日子以及那几天的特定时间。 奇怪的一些语句的工作最没有,但我没有看到什么打破了代码:Javascript/JQuery if语句不工作

function refreshTime() { 
    var now = getTime(); 
    $('#date').html(now.day + ', ' + now.date + '. ' + now.month); 
    $('#time').html("<span class='hour'>" + now.hour + "</span>" + "<span class='minute'>" + now.minute + "</span>" + "<span class='second'>" + now.second + "</span>"); 
    if (now.day != "Sonntag" && now.day != "Samstag") 
    { 
    if (now.hour == "9" && now.minute >= "50") 
     { 
     var left = "60" - now.minute; 
     $('#gh').html("<span class='gh_remind'>Grosshandel einstellen in " + left + " Minuten!</span>"); 
     } 
    if (now.hour == '11' && now.minute >= '50') 
     { 
     var left = '60' - now.minute; 
     $('#gh').html("<span class='gh_remind'>Grosshandel einstellen in " + left + " Minuten!</span>"); 
     } 
    if (now.hour == '14' && now.minute >= '50') 
     { 
     var left = '60' - now.minute; 
     $('#gh').html("<span class='gh_remind'>Grosshandel einstellen in " + left + " Minuten!</span>"); 
     } 
    if (now.hour == "17" && now.minute >= "50") 
     { 
     var left = "60" - now.minute; 
     $('#gh').html("<span class='gh_remind'>Grosshandel einstellen in " + left + " Minuten!</span>"); 
     } 
    else 
    { 
    $('#gh').html(""); 
    }  
    } 
    if (now.day == "Samstag") 
    { 
    if (now.hour == "9" && now.minute >= "50") 
     { 
     var left = "60" - now.minute; 
     $('#gh').html("<span class='gh_remind'>Grosshandel einstellen in " + left + " Minuten!</span>"); 
     } 
    if (now.hour == "12" && now.minute >= "50") 
     { 
     var left = "60" - now.minute; 
     $('#gh').html("<span class='gh_remind'>Grosshandel einstellen in " + left + " Minuten!</span>"); 
     } 
    if (now.hour == "13" && now.minute >= "50") 
     { 
     var left = "60" - now.minute; 
     $('#gh').html("<span class='gh_remind'>Grosshandel einstellen in " + left + " Minuten!</span>"); 
     }  
    else 
    { 
    $('#gh').html(""); 
    }   
    } 

} 

感谢您的帮助!

+0

为什么比较字符串? –

+0

什么是所有的字符串?你正在处理数字。 “60”和“50”不是数字! – epascarello

+0

不要比较字符串! '6'> '50'。 –

回答

2

考虑一下:

var a = 'a', b; 
if (a == 'a') { 
    b = 'right'; 
} 
if (a == 'c') { 
    b = 'wrong'; 
} 
else { 
    b = 'FOOBAR!'; 
} 
alert(b); 

即使你(可能)预期b存储在if结构,它的结束'right'值 - 惊喜,惊喜! - 将包含FOOBAR。原因是如果你所有的if都是这样写的,它们是相互独立的。第一个将分配'right'字符串到b变量 - 但第二个,通过else分支,将愉快地重新分配它(对一些foobar)。

如果你想创建的if个链,使用if - else if - else语法来代替:

var a = 'a', b; 
if (a == 'a') { 
    b = 'right'; 
} 
else if (a == 'c') { 
    b = 'wrong'; 
} 
else { 
    b = 'FOOBAR!'; 
} 
alert(b); 

现在会告诉你right的事情,对不对? )

+0

thx改变了所有首先如果其他如果它工作正常。 – Arwed

2

字符串不是数字。除非你真的希望它是一个字符串,否则不要在数字周围使用引号。

> console.log("1">"50") 
    false 
> console.log("9">"50") 
    true 
+0

也可以在引用时保持一致性 - 使用''''或'''但不要混合它。也许给错误原因添加一个提示(字典顺序),以及它是如何正确的。 – Christoph