我必须在<中显示来自数据库的文章。 DIV>标签。本文从textarea插入到数据库中。我的问题是:我无法准确显示我从textarea插入的结构(包括换行符)
我尝试使用以下代码将输入字符替换为< BR>标签,但它没有工作
<div id="tmpId">${f:h(dto.accPassage)}</div>
<script>
$(function(){
$('#tmpId').html($('#tmpId').html().replace(/\n/g, '<br />'));
})
</script>
我想知道是否有人可以给我一些提示来解决这个问题。
非常感谢。
答案 0 :(得分:9)
如果您希望它与数据库中的完全,那么只需将其呈现在<pre>
标记内,而不是<div>
。
<pre id="tmpId">${f:h(dto.accPassage)}</pre>
这将保留所附文本块中的确切格式。
答案 1 :(得分:2)
由于您是从数据库中检索它的,为什么它是客户端的,而不是在从数据库中检索数据时立即进行替换?不确定你在使用什么(虽然这是无关紧要的,因为这可以用任何语言完成)但在PHP中,假设$output
是你的数据库结果,那就像
$output = nl2br($output);
希望这有帮助!
答案 2 :(得分:0)
由于您使用的是java,因此在从数据库中检索数据后,您可以随时编写以下内容来替换新行。
public static String nl2br(String s) {
return s.replaceAll("\n","<br/>");
}
// usage
nl2br("some\ntext"); //will return "some<br/>text"
答案 3 :(得分:0)
使用CSS正确渲染/ n:
<span style="white-space: pre-line">Hi! next line, next line.</span>
以您的情况
<div id="tmpId" style="white-space: pre-line">${f:h(dto.accPassage)}</div>
答案 4 :(得分:-1)
给<br>
没有结尾斜杠。