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); 

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

相关问题