将包含换行符和制表符的JavaScript字符串添加到HTML元素

Isk*_*arG 6 html javascript ajax jquery

我有这个HTML:

<p id="element">Waiting for Message</p>
Run Code Online (Sandbox Code Playgroud)

来自服务器的这个字符串使用JSON.stringify(),其中包含中断和制表符,即

var = "Heading (info:info) \n info: \n \t and so on "; // The actual string is more complex though, just an example
Run Code Online (Sandbox Code Playgroud)

而这个Jquery将字符串发布到段落标记:

$("#element").text(data); // data is the string from the server(not in JSON!)
Run Code Online (Sandbox Code Playgroud)

问题是HTML忽略了格式,但是当我使用警告框时,它会显示正确的格式.我正在动态更新元素,因为数据来自服务器.有什么指针吗?

dfs*_*fsq 8

您应该告诉浏览器尊重这些空白区域.简单的方法是使用white-space:pre rule:

var data = "Heading (info:info) \n info: \n \t and so on "; 

$("#element").html(data);
Run Code Online (Sandbox Code Playgroud)
#element {
  white-space: pre;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="element">Waiting for Message</p>
Run Code Online (Sandbox Code Playgroud)


Shu*_*tri 4

使用pre tagHTML 并在那里更新您的文本

$(document).ready(function(){

var data = {
    "id": "1",
    "nome": "erwrw",
    "cognome": "sdsfdfs",
    "CF": "qwert",
    "eta": "27",
    "sesso": "uomo",
    "indirizzo": "qwerrt",
    "luogo": "wewrw",
    "provincia": "ewrewrw",
    "citta": "erwrwr",
    "comune": "ewrewrw"
  }

var obj = JSON.stringify(data, null, 4);
$('#element').text(obj);
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre id="element">Waiting for Message</pre>
<button id="btn">send</button>
Run Code Online (Sandbox Code Playgroud)