【发布时间】:2012-04-16 08:22:09
【问题描述】:
虽然听起来很傻,但我仍然没有找到合适的答案。
假设我想动态创建一个新的 DOM 元素并填充它的 textContent/innerText
带有 JS 字符串文字。
字符串太长了,我想把它分成三块:
var h1 = document.createElement("h1");
h1.textContent = "This is a very long string and I would like to insert a carriage return HERE...
moreover, I would like to insert another carriage return HERE...
so this text will display in a new line";
问题是,如果我写
h1.textContent = "...I would like to insert a carriage return here... \n";
它不起作用,可能是因为浏览器认为 '\n' 是纯文本并按原样显示(\r 也不起作用)。
另一方面,我可以更改 h1.innerHTML 而不是 textContent 并编写:
h1.innerHTML = "...I would like to insert a carriage return here...<br />";
这里
可以完成这项工作,但这样做不仅会替换文本内容,还会替换我 h1 的所有 HTML 内容,这不是我想要的 .
有没有一种简单的方法可以解决我的问题?
我不会仅仅为了让文本在不同的行上而诉诸于创建多个块元素。
任何想法将不胜感激。
提前致谢。
【问题讨论】:
-
在标题元素中插入换行符的问题是你不能确定标题不会在其他地方换行,尤其是在视口很小的情况下。
-
为什么要添加换行符?你想看看渲染的线条是否中断?
标签: javascript string escaping carriage-return