1

テキストエリアのリストがあります。各テキストエリアは個別の div にあります。

1. < div id="div_textarea1"> <textarea id="textarea1"></textarea> < /div >
2. < div id="div_textarea2"> <textarea id="textarea2"></textarea> < /div >
3. < div id="div_textarea3"> <textarea id="textarea3"></textarea> < /div >
4. < div id="div_textarea4"> <textarea id="textarea4"></textarea> < /div >

これらのテキストエリアはすべて tinyMCE プラグインを使用しています。

各テキストエリアの近くに削除ボタンがあります (このボタンはテキストエリアを削除します)。

削除ボタンをクリックすると、選択したテキストエリアが削除され、他のテキストエリアの ID が適切な番号に変更されます。

function deleteTitlenote(titlenote_id)
{
    $('#titlenote_div'+titlenote_id).remove();

    var nodes = document.getElementById('add_titleNote').childNodes.length;
    var n = 0;

    for(var i=1; i<= nodes+1; i++)
    {
        if(document.getElementById("titlenote"+i)!=null)
            {
                    n++;
                    document.getElementById("titlenote"+i).id="titlenote"+n;
            }
    }
}

これは、tinyMCE プラグインを使用しない単純なテキストエリアがある場合は正常に機能しますが、mce プラグインを使用すると、ID を変更しても、新しい ID を呼び出してテキストエリアの古い値にアクセスします。

これを解決する方法について何か考えはありますか? ありがとうございました。

4

1 に答える 1

0

ここでの問題は、textarea の ID がその tinymce エディター インスタンスの ID に対応することです。より正確には、tinymce エディターを初期化すると、テキストエリアが非表示になり、tinymce は contenteditable iframe と、この iframe を使用してコンテンツを編集するエディター オブジェクトを作成します。エディター オブジェクトは、html ソース要素 (テキストエリア) の ID を取得します。したがって、textarea id を変更する場合は、すべての tinymces をシャットダウンして再起動するか、tinymce エディターの内容を対応する id を持つ tiyncm エディターにリセットする必要があります。

于 2012-10-22T14:18:04.693 に答える