我有一份textareas列表。每个textarea都在一个单独的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 >
所有这些textareas都在使用tinyMCE插件。
在每个textarea附近,我有一个删除按钮(该按钮将删除textarea)。
当我点击删除按钮时,将删除所选的textarea并更改其他textareas的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来访问textarea的旧值。
关于如何解决这个问题的任何想法?谢谢。
答案 0 :(得分:0)
问题在于textarea的id对应于其tinymce编辑器实例的id。更准确地说,当你初始化一个tinymce编辑器时,textarea会被隐藏,而tinymce会创建一个可信的iframe和一个使用这个iframe来编辑内容的编辑器对象。编辑器obejct获取html源元素(textarea)的id。 因此,当你更改textarea id时,你要么必须关闭所有的tinymces并重新启动它们,否则你必须将tinymce编辑器内容重置为具有相应id的tiyncem编辑器。