2017-06-15 39 views
0

對不起,如果這是一個基本的問題,但我不能讓兩個「行動」在一個單獨的工作,如果。我可以在else語句中使用兩個動作嗎?

我希望它說不同的問候,同時根據當前時間更改身體的背景顏色。

代碼工作沒有這一行:

document.getElementById("####").style.background = '#######'; 

這是不起作用的代碼:

var today = new Date(); 
    var hourNow = today.getHours(); 
    var greeting; 

    if (hourNow > 20) { 
     greeting = 'Boa noite!'; document.getElementById("body").style.background = '#000000'; 
    } else if (hourNow > 12) { 
     greeting = 'Boa tarde!'; 
     document.getElementById("body").style.background = '#ffffff'; 
    } else if (hourNow > 0) { 
     greeting = 'Bom descanço!'; document.getElementById("body").style.background = '#121212'; 
    } else if (hourNow > 7) { 
     greeting = 'Bom dia!'; document.getElementById("body").style.background = '#bf3d3d'; 
    } 
    document.write(greeting); 

我感謝每一個幫助我能!先進的謝謝!

+0

這不是真的清楚你的問題是什麼。什麼不工作?另外,'document.write()'是陳舊的,應該避免。改爲研究DOM腳本。 – Utkanos

+0

嘗試使用document.body.style.backgroundColor =「######」; instea,也可以像你的問候一樣來節省代碼量 – krisph

+0

你的HTML中有一個id爲'body'的元素嗎?只需打開開發控制檯並檢查是否確實看到任何錯誤。 –

回答

-1

如果您在case中未提供break,則可以使用switch statement並利用fall-through行爲。

0

您應該爲您的身體添加一個<h1>標記,然後爲此問候設置innerText。

<!-- HTML --> 
<h1 id="greeting"></h1> 

// JS 
var greeting = document.getElementById('greeting'); 

if (hourNow > 20) { 
    greeting.innerText = 'Boa noite!'; 
    document.body.style.backgroundColor = '#000000'; 
} 
+0

謝謝,那種方式好多了! Javascript對我來說是非常近的事情,謝謝你的幫助! –

0

你應該把

else if (hourNow > 7) 

else if (hourNow > 0) 

眼下還有最後一個,如果不可達

+0

非常感謝! –

1

你可以使用一個對象想要的參數來改變和使用按照想要的順序創建一個數組,其中包含一個用於更改給定值的回調函數。

var greetings = { 
 
     20: { 
 
      greeting: 'Boa noite!', 
 
      background: '#000000' 
 
     }, 
 
     12: { 
 
      greeting: 'Boa tarde!', 
 
      background: '#ffffff' 
 
     }, 
 
     7: { 
 
      greeting: 'Bom dia!', 
 
      background:'#bf3d3d' 
 
     }, 
 
     0: { 
 
      greeting: 'Bom descanço!', 
 
      background: '#121212' 
 
     } 
 
    }, 
 
    hourNow = (new Date).getHours(); 
 

 

 
[20, 12, 7, 0].some(function (hour) { 
 
    if (hourNow >= hour) { // check for greater and equal 
 
     document.getElementById("greeting").innerHTML = greetings[hour].greeting; 
 
     document.body.style.background = greetings[hour].background; 
 
     return true;  // exit loop 
 
    } 
 
});
<div id="greeting" style="background-color: #ffffff;"></div>

相關問題