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 插件。

在每个文本区域附近,我有一个删除按钮(该按钮将删除文本区域)。

当我单击删除按钮时,选定的 textarea 将被删除,其他 textarea 的 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 插件的简单 textarea 时,这很好用,但是一旦我使用 mce 插件,即使我更改了 id,我也会通过调用新 id 来访问 textarea 的旧值。

关于如何解决这个问题的任何想法?谢谢你。

4

1 回答 1

0

这里的问题是 textarea 的 id 对应于它的 tinymce 编辑器实例的 id。更准确地说,当你初始化一个 tinymce 编辑器时,textarea 被隐藏,tinymce 创建一个 contenteditable iframe 和一个使用这个 iframe 编辑内容的编辑器对象。编辑器对象获取 html 源元素(文本区域)的 id。因此,当您更改 textarea id 时,您要么必须关闭所有 tinymce 并重新初始化它们,要么必须将 tinymce 编辑器内容重置为具有相应 id 的 tiyncem 编辑器。

于 2012-10-22T14:18:04.693 回答