2013-06-18 82 views
0

開啓dblclick - 將DIV替換爲TEXTAREA。您可以編輯文字。從textarea更改/ n至<br />文本

模糊 - TEXTAREA被DIV替換回來。並且新行被替換爲「< br />」。

第一個問題 - 在編輯的文本 - 「< BR />」 不喜歡breaked或文本換行,但就像文本 「< BR />」。如何解決它?

問題二 - 有一個 「< BR />」 示例英寸當您第一次編輯文本時,此「< br />」不會更改爲新行,但僅限於簡單的空間(&nsbp;)。爲什麼有這個錯誤,當你第一次嘗試編輯原文時?

jsFiddle DEMO

HTML

<div id="meText">Click to edit <br /> this text.</div> 

jQuery的

$(function(){ 
    $("#meText").live('click',function(){ 
     var originalDiv = this; 
     $(this).replaceWith($("<textarea></textarea>").text($(this).text().replace(/<br\s?\/?>/g,"\n")).width($(this).width()).height($(this).height()).blur(function(){$(this).replaceWith($(originalDiv).text($(this).val().replace(/\r\n|\r|\n/g,"<br />")));})); 
    }); 
}); 
+0

@Partik是我的ans爲你工作.. ?? – Gautam3164

回答

2

嘗試用。 html()而不是。 文本()和改變更換

$(function(){ 
$("#meText").on('click',function(){ 
    var originalDiv = this; 
    $(this).replaceWith($("<textarea></textarea>").html($(this).text().replace(/\n/g, "<br />"))); 
    }); 
}); 

看到這個LINK。你可以你的寬度和高度添加到這個

+1

它是爲你工作.. ?? – Gautam3164

+0

謝謝,您對** text()**和** html()**是正確的,但您的示例不起作用。當我dblclik編輯 - 仍然有相同的錯誤。 – Patrik

1

,請使用以下代碼

$(this).replaceWith($("<textarea></textarea>").text($(this).html().replace(/<br\s?\/?>/g,"\n")).width($(this).width()).height($(this).height()).blur(function(){$(this).replaceWith($(originalDiv).html($(this).val().replace(/\r\n|\r|\n/g,"<br />")));})); 

您使用有些地方使用text()而不是html()。如果我們使用文本()它消除HTML標記