3
  <script type='text/javascript'> 
  //<![CDATA[
   for(var j = 0; j < 6;) {
    document.writeln(++j);
   }
  //]]>
  </script>

在上面的代码中,如果引用The writeln() method is identical to the write() method, with the addition of writing a newline character after each statement.

但就我而言,输出是123456

更新:

我会找到接受的最佳答案,但所有答案都是正确的,我相信下次有人会有同样的问题,所以我想我应该更新顶部的答案并删除作业标签,这样每个人都会受益.

不产生新行的原因是因为它实际上是在产生 '\n'

如果我没记错的话,浏览器的 '\n' 不会影响如何显示到屏幕上,但是如果您查看页面的源代码,您会看到我的输出会显示类似这样的内容

1
2
3
4
5
6

但是如果我们想让它显示到页面上,我们必须添加<br\>标签,这样它就会产生 a break-line,所以我们会得到我们想要的相同的输出。

  <script type='text/javascript'> 
  //<![CDATA[
   for(var j = 0; j < 6;) {
    document.writeln(++j);
    document.writeln("<br>");
   }
  //]]>
  </script>
4

7 回答 7

5

想想下面的HTML如何

<p>
1
2
3
4
</p>

将显示在浏览器中。

于 2012-04-20T13:30:17.937 回答
5

在大多数情况下,浏览器不会显示'\n'为换行符。

这可以通过CSS<pre>标签来改变;否则,使用<br/>(不是很好)或块级元素(<div>,<p>等)在文本中引入中断。

于 2012-04-20T13:30:38.410 回答
2

\n仅在代码源或标签中可见<pre></pre>。如果要在 HTML 文档中显示输出,则必须添加<br />以获取新行。

于 2012-04-20T13:31:15.407 回答
2

不,它工作正常。这里的问题是您在不同的行上输出它,但它不会在浏览器中以这种方式显示。

要查看您的实际结果,请使用“查看源代码”或在浏览器的开发人员工具中查看 HTML。

如果您希望它显示在不同的行上,请输入一些 HTML,如下所示。

  <script type='text/javascript'> 
  //<![CDATA[
   for(var j = 0; j < 6;) {
    document.write(++j);
    document.writeln("<br>");
   }
  //]]>
  </script>

或者使用PRE(又名预格式化)标签(请参阅此处的 PRE 上的 W3 规范信息),这将保留底层源代码中的换行符。

于 2012-04-20T13:32:39.480 回答
1

它正在写入新行,只有浏览器不会向您显示这些行,除非您明确指示它这样做。查看在输出周围添加预格式化标签的效果:

var i = 0;
document.write('<pre>');
while ( i < 5 ) document.writeln(++i); 
document.write('</pre>');

验证此类输出的最佳方法是查看页面的来源,而不是页面本身。

于 2012-04-20T13:32:33.703 回答
1

你需要使用<br/>它。在此处浏览 W3Schools 教程。

于 2012-04-20T13:32:37.780 回答
1

如果您使用 Firebug 窥探源代码并将其复制到类似 Noteapd++ 的文件中,您会发现它确实会输出换行符。它们不会显示在浏览器中,因为 HTML 中的换行符未定义为换行符。

于 2012-04-20T13:34:11.280 回答