如何在每个window.document.writeln之后添加换行符

时间:2015-12-31 17:25:19

标签: jquery

在每个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/

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

我记得这个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上的工作示例。

答案 1 :(得分:1)

附上<pre>标记。你会看到真实的行为。

&#13;
&#13;
    document.write('<pre>');
    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);
    };
    document.write('</pre>');
&#13;
&#13;
&#13;

小提琴网址:
https://jsfiddle.net/eyLarL23/3/

答案 2 :(得分:0)

document.writeln已添加换行符。你没有看到它,因为默认行为是swallow / coallesce空格。

如果您查看生成的页面源,则该文本节点上将有一个新行。

如果您想在页面上看到换行符,请使用br标记

window.document.writeln("Fizz" + "<br />");