1

我目前正在使用 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 文件中看到问候语一个接一个地排列,我想知道如何每行获得一个。

谢谢!

4

3 回答 3

6

替换\n<br />

http://jsfiddle.net/KcS5b/2/

于 2013-03-14T16:36:49.463 回答
1

您的问题是您正在使用换行符\n来添加新行。在 HTML 中,空白不被视为相关标记。当您考虑时,这是有道理的。您希望编写带有制表符和换行符的 HTML,但结果文档中不会出现这些空格。

您正在寻找的语义标记是换行标记,br.

编辑:此外,您可以将每个问候语包装在块级元素中,例如div. 默认情况下,一系列divs 将垂直堆叠。这样做的好处是可以在自己的语义标记中划分每个问候语,允许您应用独特的样式、使用 JavaScript 单独定位等。显然,对于您的简单示例,这可能是矫枉过正,但这延伸到一般的 Web 开发原则。

于 2013-03-14T16:38:39.050 回答
0
document.getElementById("loop").innerHTML+=getGreeting(hours);

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

于 2013-03-14T16:58:33.153 回答