1

假设我有以下 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 的换行符(即 <br /> 标签)替换 \n 字符。然而,结果是 <br /> 序列逐字出现在文本中,即好像它们在粘贴到页面之前被转义了。

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

我该如何解决它,以便它用真正的换行符打破拉丁文本?

4

2 回答 2

4

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

$(this).html(newText);

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

于 2013-10-01T15:18:58.447 回答
0

获取“字段”的 HTML,然后对 html 内容执行替换方法。这样,它会根据需要呈现它,而不是“文本”。基本上,您需要将其呈现为 HTML,而不是文本。因此,当您将新文本替换为 HTML 时,它会正确呈现。

示例:

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

     $(this).html(newText);
     });
 });
于 2013-10-01T15:42:32.947 回答