编辑已解决
我想知道为什么以下代码不起作用 - 没有“生成”换行符 有人有主意吗? 谢谢
$('#results').append("Try again! \n I believe in you");
最佳答案
我假设您正在执行 ajax 调用或其他操作,并且结果包含“\n”并且您无法更改它?
没关系,在 HTML 中,诸如\n 和空格之类的内容都会被忽略,除非您明确声明要使用空格。
有两种主要方法可以实现此目的。
首先是 <pre>
标签
$(function() {
$('#results').append("Try again! \n I believe in you");
})
<html>
<head>
<script data-require="jquery@*" data-semver="2.2.0" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>
<body>
<pre id="results"></pre>
</body>
</html>
第二种(更好的方法)是使用 white-space
的 css
在下一个示例中,我使用 white-space:pre-line
这只会保留您的\n 或新行
$(function() {
$('#results').append("Try again! \n I believe in you");
})
<html>
<head>
<script data-require="jquery@*" data-semver="2.2.0" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>
<body>
<div style = "white-space: pre-line" id="results"></div>
</body>
</html>
请注意,第二个使用的是标准 <div>
,触发新行并且不保留\n? 后面的额外空格?这可能更符合您的需求。您也可以将其设置为 white-space:pre
div 的行为应该像 <pre></pre>
一样在空白和新行方面。
white-space
有很多选择:
white-space: normal|nowrap|pre|pre-line|pre-wrap|initial|inherit;
这应该可以满足您的需要。
如果您正在寻找非常具体的格式,您可能需要使用 Javascript 来清理文本。
还有其他方法可以在文本中进行中断,但如果您专门使用 \n
那么这是我所知道的唯一两种方法。
希望这有帮助!
关于javascript - 为什么我的\n 换行符不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37353798/