我在textarea中输入内容,按下按钮后,我的JS获取textarea输入并将其放在div标签内。
问题是,当我在textarea中输入换行符时,就像这样:
Hi
Goodbye
它出现在div中
Hi<br><br>Goodbye
当我使用Firebug实时检查实际的HTML标记时,我在div中看到了这一点:
Hi<br> <br> 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);
但是如你所见,它无效。
我该怎么做?如果您需要更多代码,请告诉我
答案 0 :(得分:6)
如果你这样做,也许会有效:
$('#mydiv').html(etext);
......或没有框架:
document.getElementById("mydiv").innerHTML = etext;
问题是text()会自动转义您的标记字符:
我们需要知道此方法会转义提供的字符串 必要的,以便它在HTML中正确呈现。为此,它打电话 DOM方法.createTextNode(),它取代了特殊字符 与他们的HTML实体等价物(例如&amp; lt; for&lt;)。