如何在createTextNode中插入换行符

时间:2016-04-16 06:07:51

标签: javascript

对于在p元素中输出一些XML代码的小程序,我需要在输出中有一些换行符。 在上周我尝试了很多东西,比如document.createElement(" br");或插入转义字符\ n或unicode空格字符\ u000A但没有任何效果。

我的输出现在:

true

我需要那样:

<viva:form rdf:parseType="Resource"> <viva:title>55</viva:title>

我的代码:

&#13;
&#13;
<viva:form rdf:parseType="Resource">
  <viva:title>55</viva:title>
&#13;
var vivaTitle;
function elementeAbrufen() {
    vivaTitle = document.getElementById("inputVivaTitle").value;
    var p = document.createElement("p");
    var t = document.createTextNode(headErzeugen());
    p.appendChild(t);
    document.body.appendChild(p)
}

function headErzeugen() {
  // insert unicode lf
    var lf = "\u000A";
    var xmlHeadStruktur = "<viva:form rdf:parseType=\"Resource\">";
    var xmlHeadTitle = "<viva:title>" + vivaTitle + "</viva:title>";
    return xmlHeadStruktur + lf + xmlHeadTitle
}
&#13;
&#13;
&#13;

我感谢你的每一个帮助。 干杯,迪迪埃

2 个答案:

答案 0 :(得分:6)

使用\ n正常工作。这是一个jsfiddle:

https://jsfiddle.net/Lftqy9b0/1/

var text = document.createTextNode("Hello\u000aWorld");

document.body.appendChild(text);
document.body.style = "white-space: pre;"

&#39; \ n&#39;,&#39; \ u000a&#39;等应该都有效,但我建议使用&#39; \ n&#39;。大多数人会更好地认识到它。

这对你不起作用的原因是HTML崩溃了所有的空白。因此,即使文本节点包含换行符,它也与输入HTML的换行符相同(也就是文本节点。)

您可以在上面的代码段中看到我包含了一个&#39; white-space:pre;&#39;规则。这导致它不会崩溃空白。有关更多选项,请参阅此处:

https://developer.mozilla.org/en-US/docs/Web/CSS/white-space

如果你要将原始文字格式化为这样显示,那可能是最简单的方法。当然,您应该将空白区域规则放在单独的css文件中。

答案 1 :(得分:1)

这有用吗?

var t = document.createTextNode(headErzeugen() + '<br />');