5

私は次のように関数を書きました:

function makeTitleEditable($titleContainer){
        var defaultValue = $titleContainer.text().replace("'","\\'");
        $titleContainer.replaceWith("<input id='poll_title' name='poll[title]' value='" + defaultValue +"' type='text'>");
      }

問題は、まだ一重引用符をエスケープできないことでした。たとえば、

$titleContainer.text() => I'm lucky

console.log("<input id='poll_title' name='poll[title]' value='" + defaultValue +"' type='text'>") => <input id='poll_title' name='poll[title]' value='I\'m lucky!' type='text'> 

これは、「ラッキー」ではなく「I」の値でDOMを生成します。どうすればこの問題を解決できますか?

4

2 に答える 2

2

jQueryを使用して値を設定します。

function makeTitleEditable($titleContainer){
    $titleContainer.replaceWith(
       $("<input id='poll_title' name='poll[title]' type='text'>").val($titleContainer.text())
    );
}
于 2012-11-25T20:19:58.170 に答える