Javascript JS中嵌套的if语句是如何工作的?
我对JS中的嵌套if语句有问题。让我向您展示代码示例:Javascript JS中嵌套的if语句是如何工作的?,javascript,if-statement,nested,Javascript,If Statement,Nested,我对JS中的嵌套if语句有问题。让我向您展示代码示例: if (code < 699) { if(hour > 6 && hour < 20) { $("#weatherIcon").html("<i class='wi wi-day-" + icon + "'></i>"); } else { if(icon == "sunny")
if (code < 699) {
if(hour > 6 && hour < 20) {
$("#weatherIcon").html("<i class='wi wi-day-" + icon + "'></i>");
}
else {
if(icon == "sunny") {
$("#weatherIcon").html("<i class='wi wi-night-clear'></i>");
}
$("#weatherIcon").html("<i class='wi wi-night-alt-" + icon + "'></i>");
}
}
$("#weatherIcon").html("<i class='wi wi-" + icon + "'></i>");
}
if(代码<699){
如果(小时数>6和小时数<20){
$(“#weatherIcon”).html(“”);
}
否则{
如果(图标==“阳光”){
$(“#weatherIcon”).html(“”);
}
$(“#weatherIcon”).html(“”);
}
}
$(“#weatherIcon”).html(“”);
}
我添加了一个打印语句,以便检查code
、hour
和图标
(值为502
、17
和rain mix
)的值,因此我应该返回
,但我总是在最后一行结束,以便输出,例如
,为什么?我没有看到什么?
非常感谢您的帮助,谢谢 您可能正在输入if
块,就像您想要的那样。紧接着,你也在跑最后一行
类似地,考虑一下,如果你这样做了
if(foo) {
bar = 7
}
bar = 0;
bar
将始终在该代码的末尾显示为0
。如果foo
为真,则bar
将非常短暂地按7
,然后立即设置为0
如果您真的希望在
code<699
失败时运行该行,请将其放在最外层If
下的else
块中,而不是一直运行,请始终覆盖If中的任何内容,您应该使用else,或者将其移动到If之前,让If覆盖默认内容。请尝试以下操作:
if (code < 699) {
if (hour > 6 && hour < 20) {
$("#weatherIcon").html("<i class='wi wi-day-" + icon + "'></i>");
} else {
if (icon == "sunny") {
$("#weatherIcon").html("<i class='wi wi-night-clear'></i>");
} else {
$("#weatherIcon").html("<i class='wi wi-night-alt-" + icon + "'></i>");
}
}
} else {
$("#weatherIcon").html("<i class='wi wi-" + icon + "'></i>");
}
if(代码<699){
如果(小时数>6和小时数<20){
$(“#weatherIcon”).html(“”);
}否则{
如果(图标==“阳光”){
$(“#weatherIcon”).html(“”);
}否则{
$(“#weatherIcon”).html(“”);
}
}
}否则{
$(“#weatherIcon”).html(“”);
}
为什么不设置默认类并根据您的条件更改类
let code=502;
小时=17;
让iconClass=‘wi雨水混合’;
如果(代码<699){
如果(小时数>6和小时数<20){
iconClass=‘wi日雨混合’;
}否则{
如果(图标==“阳光”){
iconClass=‘wi夜间清除’;
}否则{
iconClass=‘wi夜间雨混合’;
}
}
}
$(“#weatherIcon”).html(“”);
//看天气课。。
console.log($('.wi').attr('class'))代码>
因为if后面的行将运行并覆盖if中的代码。您共享的代码中有一个额外的}
。if图标中缺少一个else
。。。。同样在您所附的代码中,只要code<699
,然后$(“#weatherIcon”).html(”
将作为最后一条语句执行,并将覆盖您的其他.html()
语句Hanks@epascarello,不知道if always需要其他语句(我来自python,所以…)。我只是复制了代码的一小部分,因此可能遗漏了}
。无论如何,谢谢,@krillgarThanks,@daniel-h我刚从Python那里知道,可以用else部分编写if语句,所以我认为JS也是如此。我想我错了。。。另一个问题:为什么我会被降级?这个问题有那么愚蠢吗@米奇·马奥尼不是我贬低你,但是到处都是仇恨者。疯子使得新手很容易在这里发帖。不管怎样,谢谢你,伙计!