添加到innerHTML而不破坏表单内容

时间:2011-09-06 15:50:22

标签: javascript html ajax dom innerhtml

我有一个基于多文件上传器(swfupload)的ajax生成的表单。在完成上传的每个文件后,它会向给定的dom元素添加更多表单元素。这因此给我一个问题。如果我选择上传5个文件,第一个文件将生成一个表格,我将开始输入数据,但是,当第二个文件完成上传时,它会清除表格元素中先前输入的数据并附加第二个表单元素

我认为这是因为我正在使用:

document.getElementById('test').innerHTML = document.getElementById('test').innerHTML + newformelements;

我认为上述操作不会在表单中保留任何输入的数据,只保留HTML本身。

那么,如何在不破坏已经放入表单字段的内容的情况下附加到此元素?根据多重上传者,可能的孩子数量是动态的。

3 个答案:

答案 0 :(得分:6)

使用DOM操作,在这种情况下:Node.appendChild [docs]

innerHTML始终销毁并重新创建元素。

答案 1 :(得分:6)

您是否愿意使用jquery?如果是,那么您可以轻松地做这样的事情

$("#divid").append("html you want to append");

答案 2 :(得分:0)

创建一个新元素,设置其innerHTML,而不是将其附加到表单'children'的末尾。