在每个window.document.writeln之后添加换行符的最佳方法是什么?

我以为使用.writeln而不是.write可以解决问题,但只增加了一个空格。

for (var fizzCount = 1; fizzCount<=100; ++fizzCount) {
    if (fizzCount % 3 == 0)
        window.document.writeln("Fizz");
    else if (fizzCount % 5 == 0)
        window.document.writeln("Buzz");
    else if (fizzCount % 15 == 0)
        window.document.writeln("FizzBuzz");
    else
        window.document.writeln(fizzCount);
}


https://jsfiddle.net/eyLarL23/1/

感谢您的帮助!

最佳答案

我记得这个Codecademy lesson☺。

只需添加一个

+ "<br />"


您的每个writeln()语句。

您的代码不起作用,因为writeln()创建了\n换行符而不是<br />,因此它不表示为换行符。

例如:

for (var fizzCount = 1; fizzCount<=100; ++fizzCount) {
if (fizzCount % 3 == 0)
window.document.writeln("Fizz<br />");
else if (fizzCount % 5 == 0)
window.document.writeln("Buzz<br />");
else if (fizzCount % 15 == 0)
window.document.writeln("FizzBuzz<br />");


请参阅更新的JSFiddle

额外提示1

另外,由于您已经在使用jQuery,因此可以将window.document.writeln()语句简化为较短的jQuery语句,如下所示:

var d = $("body");
for (var fizzCount = 1; fizzCount<=100; ++fizzCount)
    if (fizzCount % 3 == 0)
        d.append("Fizz<br />");
    else if (fizzCount % 5 == 0)
        d.append("Buzz<br />");
    else if (fizzCount % 15 == 0)
        d.append("FizzBuzz<br />");


额外提示2

您的代码不会以15的倍数打印出“ FizzBu​​zz”:相反,它只会打印“ Fizz”,因为它首先遇到if(fizzCount % 3 == 0)语句。要解决此问题,请先放置if(fizzCount % 15 == 0)语句,以便它首先对其进行检查。

因此,最终的(有效的)代码将是:

var d = $("body");
for (var fizzCount = 1; fizzCount<=100; ++fizzCount)
    if (fizzCount % 15 == 0)
        d.append("FizzBuzz<br />");
    else if (fizzCount % 3 == 0)
        d.append("Fizz<br />");
    else if (fizzCount % 5 == 0)
        d.append("Buzz<br />");
    else
        d.append(fizzCount + "<br />");


请参见JSFiddle上的工作示例。

关于jquery - 如何在每个window.document.writeln之后添加换行符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34549634/

10-09 20:06