Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JS将div文本中的\n转换为_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用JS将div文本中的\n转换为

Javascript 使用JS将div文本中的\n转换为,javascript,jquery,html,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

假设我有以下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>
... 
下面的代码将\n字符替换为类似HTML的新行,即标记。但是,结果是序列会逐字出现在文本中,即,它们好像在粘贴到页面之前被转义了

$(".field").each(function() 
{
    var oldText = $(this).text();
    var newText = oldText.replace(/\n/g, "<br />");
    $(this).text(newText);
});
如何修复它,使其以真正的新行打断拉丁文本?

使用.html而不是.text:

来源:

使用.html而不是.text:


来源:

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

例如:

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

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

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

例如:

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

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

$this.htmlnewText@斯拉克,不错。对于这种情况,这可能是一种更好的方法。@SLaks将此放入一个答案中,我将对此进行投票。不幸的是,事实证明,如果pre太长而无法放入其中,它不会自动断开一行。这就是我提出此解决方案的原因。但如果使用路径,例如:\\NewCatalog\NewItem\notepad?$this.htmlnewText@斯拉克,不错。对于这种情况,这可能是一种更好的方法。@SLaks将此放入一个答案中,我将对此进行投票。不幸的是,事实证明,如果pre太长而无法放入其中,它不会自动断开一行。这就是我提出此解决方案的原因。但如果您使用路径,例如:\\NewCatalog\NewItem\notepad,该怎么办?抱歉,这是在处理我的解决方案时发布的。抱歉,这是在处理我的解决方案时发布的。