使用JS将div的文本中的\ n转换为<br/>

时间:2013-10-01 15:16:39

标签: javascript jquery html

假设我有以下HTML文件。

...
<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的新行(即&lt; br /&gt;标记)替换\ n字符。然而,结果是&lt; br /&gt;序列在文本中逐字显示,即好像它们在粘贴到页面之前被转义。

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

如何修复它以便用真正的新行打破拉丁文本?

2 个答案:

答案 0 :(得分:4)

使用.html()代替.text()

$(this).html(newText);

来源:http://api.jquery.com/html/

答案 1 :(得分: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);
     });
 });