0

dblclick では、DIV は TEXTAREA に置き換えられます。テキストを編集できます。

ぼかしの場合 - TEXTAREA は DIV に置き換えられます。また、改行は「< br />」に置き換えられます。

最初の問題- 編集されたテキストにあります - "< br />" はテキストの改行や改行のようではなく、テキスト "< br />" のようです。それを修正する方法?

2 番目の問題 - 例に「< br />」が 1 つあります。例のテキストを初めて編集するとき、この「< br />」は改行ではなく単純なスペース ( &nsbp; ) にのみ変更されます。初めてテキスト原文を編集しようとすると、なぜこのエラーが発生するのですか?

jsFiddle デモ

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 />")));}));
    });
});
4

2 に答える 2

2

で試してください。html () の代わりに . テキスト() のように置換を変更します

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

このリンクを参照してください。これに幅と高さを追加できます

于 2013-06-18T08:57:58.403 に答える