2013-03-14 53 views
1

我目前在使用JavaScript並嘗試獲取它的掛起。我想知道如何讓每一句問候語都在一行中,而不是一個接一個接一個。希望我的問題有道理。如何在Javascript循環中每個字符串獲取一行代碼

window.onload = function() { 
getGreeting(); 
}; 

for(var hours=0; hours < 24; hours++) 
{ 

document.getElementById("loop").innerHTML = document.getElementById("loop").innerHTML + "\n" + getGreeting(hours); 
} 


function getGreeting(hours) { 
    var greetingText; 
    if (hours >=6 && hours < 12) { 
     greetingText = "Good morning!"; 
    } else if (hours >= 12 && hours < 17) { 
     greetingText = "Good afternoon!"; 
    } else if (hours >= 17 && hours < 23) { 
     greetingText = "Good Evening!"; 
    } else if (hours >= 23 || hours < 6) { 
     greetingText = "Go to sleep!"; 
    } 
    return greetingText; 
} 

http://jsfiddle.net/priswiz/KcS5b/你的問候一字排開一前一後的的jsfiddle文件中看到,我想知道如何讓每行一個。

謝謝!

回答

1

你的問題是,你正在使用的換行符\n,你想添加一個新的生產線。在HTML中,空白不被視爲相關標記。這是有道理的,當你考慮它。您希望使用製表符和換行符來編寫HTML,但不會在生成的文檔中顯示這些空格。

您正在尋找的語義標記是換行符標記br

編輯:此外,您可以將每個問候打包在塊級元素中,例如div。默認情況下,一系列div將垂直堆疊。這有利於使用自己的語義標記對每個問候語進行劃分,從而允許您應用獨特的樣式,單獨使用JavaScript進行對準等。顯然,對於您的簡單示例而言,這可能是矯枉過正,但可以延伸到一般的Web開發原則。

+1

或最好
,因爲它兼容x​​html和html5 – apelsinapa 2013-03-14 16:39:31

+0

@apelsinapa你說得對,它更兼容,但問題沒有指定,所以我省略了故意做一個關於採用新標準的細微陳述:) – 2013-03-14 16:45:48

+0

沒有必要爲自己辯護,我只是想讓詢問者得到最好的答案=) – apelsinapa 2013-03-14 16:49:51

0
document.getElementById("loop").innerHTML+=getGreeting(hours); 

如上所示使用連接(+)!

相關問題