2013-12-09 45 views
5

當添加一個字符串,在JavaScript設定,到一個文本值,它似乎轉換換行符罰款。然而,抓住從數據屬性,這個字符串時,似乎離開換行符爲\ njQuery的textarea的值不轉換換行符

這些都具有字符串類型,所以我很困惑如何一個作品,但不是其他。

我怎樣才能獲取數據的屬性,使換行符用一個textarea工作?

<div id="test" data-message="this\ntest"></div> 
<textarea id="textarea"></textarea> 
<textarea id="textarea2"></textarea> 
var html = 'this\ntest'; 
var div = $('#test').data('message'); 

$('#textarea').val(html); 
$('#textarea2').val(div); 

JSFiddle Example

+0

看起來當從屬性'\'讀出的值被轉義使用'像\\',看'之間的html'長度差異和'div' http://jsfiddle.net/arunpjohny/7q8RG/1/ –

回答

7

您需要使用HTML屬性中的換行符的HTML字符實體:&#13;

<div id="test" data-message="this&#13;test"></div> 

Updated fiddle

+0

多麼愚蠢的我。謝謝! – digitalclubb

+0

沒問題,很高興提供幫助。 –

3

當你從一開始就數據屬性爲\n正變得逃脫,所以你需要更換:

$('#textarea2').val(div.replace("\\n","\n")); 

Example

+0

全局替換:'div.replace(/ \\ N/G, 「\ n」 個)' – Pete