2011-09-06 13 views
9

Ho un modulo generato tramite ajax basato su un uploader multi-file (swfupload). Aggiunge ulteriori elementi del modulo a un determinato elemento dom al completamento di ogni file caricato. Questo mi dà quindi un problema. Se ho selezionato 5 file da caricare, il primo file genererà un modulo in cui inizierò a inserire i dati, tuttavia, quando il secondo file è completato, cancella i dati inseriti precedentemente negli elementi del modulo e aggiunge anche i 2 ° elementi del modulo .Aggiungi a innerHTML senza distruggere il contenuto del modulo

credo che questo sia perché im utilizzando:

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

Penso che fare quanto sopra non mantiene alcun i dati inseriti nei moduli, solo il codice HTML stesso.

Quindi, come posso aggiungere a questo elemento senza distruggere ciò che è già stato inserito nei campi? Il numero di possibili bambini è dinamico basato sul multi-uploader.

+1

Non crederete questo, ma in realtà vi sono funzioni di manipolazione DOM per questo ': P', non utilizzare innerHTML - ricreazione DOM tramite innerHTML dovrebbe essere evitato! –

+0

cura di divulgare? – David

+0

Penso che ti stia sbagliando per cosa sia innerHTML. Stai richiedendo una tabella di somekind, che si estende in modo dinamico in base ai nuovi dati? – T9b

risposta

6

Sei aperto all'utilizzo di jquery? Se sì allora si può facilmente fare qualcosa di simile

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

Utilizzare la manipolazione DOM, in questo caso: Node.appendChild[docs].

innerHTMLsempre distruggere e ricreare gli elementi.

0

Creare un nuovo elemento, impostarne il innerHTML, quindi aggiungerlo alla fine dei figli dei moduli.

Problemi correlati