String.replace() 不替换换行符(或任何东西,就此而言)

bur*_*ar4 2 javascript regex jquery

如果文本中有换行符,我在使“可编辑”文本块正常工作时遇到了一些麻烦。

我有两个元素, adiv和 a textarea。当用户单击“编辑”时,我有以下代码来填充文本区域:

text = $('#div').text();
$('#div').replaceWith('<textarea id="textarea"></textarea>');
$('#textarea').val(text);
Run Code Online (Sandbox Code Playgroud)

当用户完成编辑并单击“保存”时,我有以下内容:

text = $('#textarea').val();
text.replace(/\n/g, "<br />\n");
$('#textarea').replaceWith('<div id="div"></div>');
$('#div').html(text);
Run Code Online (Sandbox Code Playgroud)

但是,如果 div 原来有多行(带<br />标签),如果我单击编辑然后保存,所有换行符都会消失。

我已经使用 Firebug 来尝试了解正在发生的事情,但看起来 String.replace() 行完全没有效果,无论我用它做什么。

我确信我在这里遗漏了一些明显的东西,但我一生都无法弄清楚它是什么。

tim*_*eam 6

text.replace()不取代原文。它返回替换的文本。

请这样做text = text.replace(...)