Textarea \ n到<br/>没有逃脱

时间:2011-07-23 12:07:35

标签: javascript jquery html

我在textarea中输入内容,按下按钮后,我的JS获取textarea输入并将其放在div标签内。​​

问题是,当我在textarea中输入换行符时,就像这样:

Hi

Goodbye

它出现在div中

Hi<br><br>Goodbye

当我使用Firebug实时检查实际的HTML标记时,我在div中看到了这一点:

Hi&lt;br&gt; &lt;br&gt; Goodbye

这是我发现的一个函数,应该用breaktags替换换行符:

function nl2br (str, is_xhtml) {   
var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '\<br \/>' : '\<br>';    
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1'+ breakTag +'$2');
}

以下是我如何使用它:

etext = $('#mytext').val();
etext = nl2br(etext,false);
$('#mydiv').text(etext);

但是如你所见,它无效。

我该怎么做?如果您需要更多代码,请告诉我

1 个答案:

答案 0 :(得分:6)

如果你这样做,也许会有效:

$('#mydiv').html(etext);

......或没有框架:

document.getElementById("mydiv").innerHTML = etext;

问题是text()会自动转义您的标记字符:

  

我们需要知道此方法会转义提供的字符串   必要的,以便它在HTML中正确呈现。为此,它打电话   DOM方法.createTextNode(),它取代了特殊字符   与他们的HTML实体等价物(例如&amp; lt; for&lt;)。