将Json结果转换为HTML

3
如果我将以下字符串设置到div中,如何使HTML中的换行符起作用?
{
"s":"Phrase1.\n\nPhrase2"
}
谢谢。

如果你不接受问题的有效答案,很少有人愿意帮助你。 - Phrogz
可能是在HTML中显示MySQL换行的重复问题。 - Tomalak
您可以在此处查看使用.replace()方法的示例:http://www.lampcoder.com/how-to-parse-line-breaks-using-jquery-post-method-and-json/ - Mihai Matei
3个回答

7

使用<pre>标签包装预格式化文本:

<pre>{ "s":"Phrase1.\n\nPhrase2" }</pre>

显示结果为:

{ "s":"短语1。
短语2" }

编辑:另一个选项是将

的样式或类设置为与
标签相同的行为:

<div style="whitespace:pre"/>

鉴于主题和标签包含“JSON”,我假设OP正在访问JSON返回值的s属性并将文本设置为该值。 - Phrogz
好的,它是一个JSON格式的字符串。它可能与Javascript JSON对象无关。即使有关系,您仍然可以将内容包装在<pre>标记中。 - Ed Marty
我认为你指的是CSS属性white-space而不是whitespace - Ludo - Off the record

5
foo.innerHTML = myObj.s.replace(/\n/g,"<br>");

转换为 foo.innerHTML = myObj.s.replace(/\n/g,"<br />"); - user285677
你可能需要转义 \ 字符 /\n/g - benbyford
1
@benbyford 不,你不需要。 - Phrogz
@benbyford OP的代码显示了一个ASCII换行符。在字面正则表达式中,它表示为\n。如果你写成/\\n/,它将匹配两个ASCII字符,一个反斜杠后跟一个字母n。 - Phrogz
抱歉,我有些困惑了。反斜杠通常用于转义字符,但在这种情况下可能不是这样,因为它似乎没有起作用。 - benbyford

2
{"s", "phrase1.<br /><br />"phrase2"}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接