2013-10-01 50 views
1

讓我們假設我有以下HTML文件。將div的文本中的 n轉換爲<br />與JS

... 
<div class="field"> 
    Lorem ipsum dolor sit amet,\nconsectetuer adipiscing elit. ... 
</div> 
... 
<div class="field"> 
    Phasellus faucibus molestie nisl.\nMorbi leo mi,\nnonummy 
    eget tristique non,\nrhoncus non leo. ... 
</div> 
... 

下面的代碼應該與HTML類似的新線(即< BR />標記)取代\ n個字符。然而,結果是文本逐字地出現在文本中,即,如果它們在被粘貼到頁面之前被轉義了。

$(".field").each(function() 
{ 
    var oldText = $(this).text(); 
    var newText = oldText.replace(/\n/g, "<br />"); 
    $(this).text(newText); 
}); 

我該如何解決這個問題,以便使用真實的新行破解拉丁文本?

+7

$(本)的.html(newText); – JonasT

+2

'white-space:pre' – SLaks

+2

@SLaks,很好。這可能是這種情況下更好的方法。 – xandercoded

回答

0

以 「場」 的HTML,然後做你的替代方法的HTML內容。這樣它就會根據需要進行渲染,而不是「文本」。基本上,您需要將其呈現爲HTML,而不是文本。因此,當您將新文本替換爲HTML時,它會正確呈現。

Exaample:

$(document).ready(function(){ 
    $(".field").each(function() 
    { 
    var oldText = $(this).text();  
    var newText = oldText.replace(/\n/g, "</br>"); 

    $(this).html(newText); 
    }); 
}); 
+0

對不起,這是在解決我的問題時發佈的。 – Casey