使用Javascript在网页上显示数据时遇到以下问题。
代码如下:
myString.replace('\n', '<br/>');
我想目的很明确,我想用
标记替换'\ n'换行标记,但在HTML中做同样的事情。
问题是:
以字符串 abc \ nXYZ 开头,而不是像我期望的那样得到 abc
XYZ ,我最终得到 abc&lt; br /&gt; XYZ 。当然这不是我想要的,因为效果不一样。
正确的解决方法是什么?
答案 0 :(得分:0)
获取内部HTML,然后str.replace("\n", "<br/>")
,然后将其放回内部HTML。我已经附上了正在运行的演示的代码片段。
function myFunction() {
var str = document.getElementById("demo").innerHTML;
var res = str.replace("\n", "<br/>");
document.getElementById("demo").innerHTML = res;
}
<!DOCTYPE html>
<html>
<body>
<p>Click the button to replace carriage returns with line-break in the paragraph below:</p>
<p id="demo">Visit
Stack Overflow!</p>
<button onclick="myFunction()">Try it</button>
</body>
</html>
答案 1 :(得分:0)
这里的问题是\n
被<br/>
标签的 string 版本所取代,意思是HTML对其进行翻译的方式,使得<
和>
出现而不是充当标签。
您应该做的是获取HTML并替换其中的部分。像这样:
var myDiv = Document.getElementById('my-div');
var myDivContent = myDiv.innerHTML;
myDiv.innerHTML = myDivContent.replace("\\n", "<br/>");