我想使用此代碼將文本從textarea複製到div,但缺少換行符。應對來自textarea的文本到div中的jQuery
$("#some-div").text($("#some-textarea").val().replace('/\n/g', '<br />'));
怎麼回事? 謝謝
我想使用此代碼將文本從textarea複製到div,但缺少換行符。應對來自textarea的文本到div中的jQuery
$("#some-div").text($("#some-textarea").val().replace('/\n/g', '<br />'));
怎麼回事? 謝謝
text
函數將設置文本,而不是HTML。
您需要在生成的HTML替換換行符:
$("#some-div").text($("#some-textarea").val())
.html(function(index, old) { return old.replace(/\n/g, '<br />') });
請注意,您無法從文本區域直接設置HTML,因爲這將無法逃脫的HTML標籤。
另外,與PHP不同,Javascript使用正則表達式文字,因此您不能將正則表達式放入字符串中。
+1教導我們,謝謝。 – YOU 2011-02-11 14:20:58
與其將HTML視爲字符串,我會建議創建DOM節點。歸一化值的textarea(IE使用\r\n
而非\n
),分割上換行符textarea的值,並創建由<br>
元件分隔的文本節點:
var div = $("#some-div")[0];
var lines = $("#some-textarea").val().replace(/\r\n/g, "\n").split("\n");
for (var i = 0, len = lines.length; i < len; ++i) {
if (i) div.appendChild(document.createElement("br"));
div.appendChild(document.createTextNode(lines[i]));
}
這是http://stackoverflow.com/questions/的重複4870256 /怎麼辦 - 你 - 保存最換行符-IN-A-textarea的功能於jQuery的。 – Neil 2011-02-11 14:33:35