2011-12-20 65 views
51

我有一個字符串說使用字符串新行( n)和渲染相同的HTML

string display_txt = "1st line text" +"\n" + "2nd line text"; 
jQuery中

,我試圖用

('#somediv').html(display_txt).css("color", "green") 

很清楚我期待我的消息將顯示在兩行中,但是\ n正在消息中顯示。任何快速修復?

感謝,

+5

使用
,而不是\ n – jantimon 2011-12-20 10:18:30

+1

很清楚,答案就在你的問題,你想在DIV的HTML渲染錯誤信息,所以你可以使用'
'標籤 – Murtaza 2011-12-20 10:21:03

+0

沒有什麼「非常清楚「期待兩行。相反,非常清楚的是,換行符將被渲染爲普通空間,如果需要的話只包裝行。它是HTML如何工作的,當然這也是'.html'的工作原理。 – 2011-12-20 10:24:10

回答

45

使用<br />新行HTML:

display_txt = display_txt.replace(/\n/g, "<br />"); 
+0

出於某種原因,我必須將「\ n」轉義爲「\\ n」,否則它不起作用。 (在Chrome 46中測試)。任何理由? – 2015-12-17 19:05:06

+2

請注意,這將只會替換字符串中的'\ n'字符的第一次出現。請參閱[MDN文檔](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace) – 2016-06-14 17:59:58

+1

best'.replace(/ \ n/g,「
」 )'是防止更多的換行符。 – KingRider 2016-08-05 16:36:11

1

的也許.text代替.html

+0

對我來說.html工作;) – Faizan 2016-03-10 12:44:11

87

設置表單元格中的CSS來

white-space:pre-wrap; 

document.body.innerHTML = 'First line\nSecond line\nThird line';
body{ white-space:pre-wrap; }

+2

所以這不應該被接受的答案? LE:我發現這隻支持IE 8+ [link](http://www.w3schools.com/cssref/pr_text_white-space.asp) – gciochina 2016-03-17 09:04:00

+1

這個答案比設置innerHTML要好,因爲它沒有'導致XSS漏洞。 – RobinLinus 2016-03-29 21:53:51

+1

另外,你可以使用'white-space:pre-line;'作爲空白序列將會合併成一個空格。文字將在必要時換行,並換行。更多信息:[https://www.w3schools.com/cssref/pr_text_white-space.asp](https://www.w3schools.com/cssref/pr_text_white-space.asp) – JiaHao 2017-07-17 01:56:22

3

你可以使用,而不是一個div預先標記。這會自動以正確的方式顯示您的\ n。

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
     var display_txt = "1st line text" +"\n" + "2nd line text"; 
     $('#somediv').html(display_txt).css("color", "green"); 
}); 
</script> 
</head> 
<body> 

<pre> 
<p id="somediv"></p> 
</pre> 

</body> 
</html> 
相關問題