【问题标题】:Print a new line in a table在表格中打印新行
【发布时间】:2018-07-26 21:52:15
【问题描述】:
<!DOCTYPE html>
<html>

<head>
  <title>Parse Prompt</title>
  <script language="JavaScript">
    var input = window.prompt("Enter a sentence");
  </script>
</head>

<body>
  <table>
    <tr Align='Center'>
      <th Width='100'>
        <H1>input</H1>
      </th>
    </tr>
    <script language="JavaScript">
      function parseStrings(input) {
        var parse = input.split(' ');
        for (let i = 0; i < parse.length; i++) {
          parse[i] = parse[i] + '<br />';
          return parse;
        }
        return input;
      }
      document.writeln("<tr Align='Center'><td>" + parseStrings(input) + "</td></tr>");
    </script>
  </table>
</body>

</html>

我正在尝试解析空格并将数组中的所有元素打印到 HTML 表中。

我做了什么:我创建了一个函数,该函数将接收input 并尝试拆分空白并将其存储到一个数组中。它现在的打印方式是:

hello

,kedi,ekdier,

第一个单词之后的每个元素都得到一个, 并放入第二行。那是我的问题。

我也尝试过不使用函数/数组,但它会执行以下操作:

hello kedi ekdier

表格中的一行。

【问题讨论】:

  • 您会立即在for 循环中return parse。为什么?
  • @Xufox 感谢您格式化我的脚本,我返回 parse 因为我觉得它在拆分的情况下会有所帮助,我可能错了
  • 如果我不返回 parse,我会在一行中得到所有内容。
  • 只需在循环外返回parse 并删除return input;
  • @Xufox 你能解释一下为什么会这样吗?另外,我是否必须添加一个删除语句,在每个新行之后删除逗号?

标签: javascript html newline


【解决方案1】:

正如@Xufox 在 cmets 中所提到的,问题是您在两个地方返回:

  1. for 循环迭代中(这在正常编程中完全没问题,但您通常将其包装在条件中)
  2. for 循环之后

这些都不是错误的,但是您的操作方式和返回的内容都是错误的。在这种情况下,您希望完全迭代 覆盖整个拆分输入,然后返回最终确定的数组,而不是返回 input

此外,您似乎想要为每个“标记化”项目创建一个新的表格行,而不是简单地插入 &lt;/br&gt; 换行符。

我在这里为您创建了一个 JSFiddle,这可能有助于显示您需要做什么:https://jsfiddle.net/y3ezy0v6/

编辑:不带逗号:https://jsfiddle.net/y3ezy0v6/2/

【讨论】:

  • 问题:为什么你的代码在每个单词后都打印一个 , ?正好在左上角。
  • 您仍然需要join 数组。逗号来自数组的字符串化,由于它们在任何表格单元格之外,它们最终会在表格之外。
  • 你说得对,@Xufox——我没有看表的顶部。谢谢。它已修复和更新
猜你喜欢
  • 2019-08-30
  • 2012-09-09
  • 2018-05-19
  • 1970-01-01
  • 2013-07-01
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多