【问题标题】:Why writeln(); not producing a new line?为什么 writeln();不生产新线?
【发布时间】:2012-05-02 02:19:24
【问题描述】:
  <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

但如果我们想让它显示在页面上,我们必须添加&lt;br\&gt; 标签,这样它就会产生一个break-line,所以我们会得到我们想要的相同输出。

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

【问题讨论】:

  • 我试图不直接给出答案..因为它被列为家庭作业!但是非易失性!
  • @Arth 这可能是阿里的功课,但这些答案不止一个人 :)
  • @JonathanSampson 然后他们可以在没有作业标签的情况下重新询问!

标签: javascript logic


【解决方案1】:

想想下面的HTML如何

<p>
1
2
3
4
</p>

将显示在浏览器中。

【讨论】:

    【解决方案2】:

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

    这可以是changed with CSS&lt;pre&gt; tags;否则,使用&lt;br/&gt;(不是很好)或块级元素(&lt;div&gt;&lt;p&gt; 等)在文本中引入中断。

    【讨论】:

      【解决方案3】:

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

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

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

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

      或者使用PRE(又名预格式化)标签(see W3 spec info on PRE here),它将保留底层源代码中的换行符。

      【讨论】:

        【解决方案4】:

        \n 仅在代码源或&lt;pre&gt;&lt;/pre&gt; 标记中可见。如果要在 HTML 文档中显示输出,则必须添加 &lt;br /&gt; 以换行。

        【讨论】:

          【解决方案5】:

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

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

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

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              【解决方案7】:

              您需要为此使用&lt;br/&gt;。浏览 W3Schools 教程here

              【讨论】:

              • 很明显,如果我知道 JavaScript,那么我必须知道 &lt;br/&gt; :D
              • 在我看来有点严厉的回应!
              猜你喜欢
              • 2023-02-23
              • 1970-01-01
              • 2019-08-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-04-19
              • 2017-08-02
              • 2012-04-25
              相关资源
              最近更新 更多