Javascript添加换行符, 不起作用

Javascript add linebreak, not working

本文关键字:不起作用 换行符 添加 Javascript      更新时间:2023-09-26

我想在Javascript中添加换行符,但''n不起作用,到目前为止我发现的其他内容都不起作用(如<br>'n)。此外,由于编程原因,我无法使用.appendChild.

for (i=getchilds();i<number;i++){
     container.appendChild(document.createTextNode("'n" + "Pers. " + (i+1) + " 'u00a0"));
     var input = document.createElement("input");
     input.type = "number";
     container.appendChild(input);
}

我认为您可能将空白与空白的表示法混淆了。在您的情况下,您要将表示空白的字符附加到要显示为换行符的字符串中。我假设您将它附加到一个元素上,该元素的样式没有设置为将其显示为空白。

有四种基本方法可以解决这个问题:

  1. 使用有序列表。如果可以的话,可以这样做,因为它将是结构和语义的。请注意,该链接显示了如何控制列表项文本(控制起始编号更具挑战性)
  2. 如果引用了container的元素能够适应这种情况,那么就将white-space: pre添加到它的样式中。这将使您的换行符进入视野。最好使用CSS,但也可以使用Javascript
  3. 'n更换为<br>。Denys Séguret就是一个例子
  4. 对引用container的元素使用pre标记。<pre>自动尊重并显示内容中的换行符。这当然意味着您的内容可以使用pre格式的标记来适应

更改代码以插入到文本区域或一组预标记中。

您可能会看到您的代码在浏览器的纯文本输入中插入一个空格来代替换行符。

您不能在文本节点中插入'n,并使用标准空白渲染在元素中正确渲染它们。

这里有两个解决方案:

插入<br>元素

container.appendChild(document.createElement("BR"));
container.appendChild(document.createTextNode("Pers. " + (i+1) + " 'u00a0"));

在SPAN中使用innerText

var node = document.createElement("SPAN");
node.innerText = "'n Pers. " + (i+1) + " 'u00a0";
container.appendChild(node);

第一个是与您的情况最相关的,但innerText不删除换行符(与textContent相反)这一事实通常很有用。