在每个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/
感谢您的帮助!
答案 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的倍数打印出“FizzBuzz”:相反,它会打印出“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>
标记。你会看到真实的行为。
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;
答案 2 :(得分:0)
document.writeln已添加换行符。你没有看到它,因为默认行为是swallow / coallesce空格。
如果您查看生成的页面源,则该文本节点上将有一个新行。
如果您想在页面上看到换行符,请使用br标记
window.document.writeln("Fizz" + "<br />");