|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
[javascript]- problemi nel creare select dinamiche
ciao a tutti, mi sono imbattuto in uno strano problema ultimamente..sto cercando di popolare le celle di una table dinamicamente con javascript, dopo aver creato una table di 24 righe ho pensato di popolare le celle prima con un campo di solo testo in questo modo :
for(g=0;g<24;g++){ document.getElementById(nome).rows[g].cells[2].innerHTML = "test"; } e funziona perfettamente.... poi ho creato e popolato una select e ho provato ad inserirla su una singola riga per verificare che funzionasse e fortunatamente funzionava, a questo punto ho unito le due cose e ho provato a inserire la select ad ogni riga con questo codice : for(g=0;g<24;g++){ document.getElementById(nome).rows[g].cells[2].appendChild(select); } e qui accade il fatto strano...ho inserito un alert di controllo subito dopo l'inserimento di ogni select, e pare che l'inserimento avvenga correttamente..solo che poi quando il select va inserito alla riga successiva..sparisce da quella precedente..!!!...cioè in pratica è come se si spostasse verso il basso...quindi alla fine dell'esecuzione dello script ho 24 righe vuote tranne l'ultima dove il select è "arrivato"...???
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Non puoi inserire lo stesso nodo più volte, appendChild non clona il nodo prima di inserirlo. Pensa un attimo: se funzionasse così, accedendo all'elemento select che hai appena creato, quale utilizzerebbe dei 24 che hai inserito?
Codice:
var select = document.createElement("select");
for(g=0;g<24;g++){
document.getElementById(nome).rows[g].cells[2].appendChild(select);
}
//Ora, se funzionasse questo codice, se modifichi un attributo
//di select, a quale dei 24 select che hai inserito si riferirebbe?
select.name = "ciao";
Codice:
for(g=0;g<24;g++){
var select = document.createElement("select");
document.getElementById(nome).rows[g].cells[2].appendChild(select);
}
Codice:
var select = document.createElement("select");
for(g=0;g<24;g++){
var select_per_questa_riga = select.cloneNode(true);
document.getElementById(nome).rows[g].cells[2].appendChild(select_per_questa_riga);
}
Ultima modifica di kk3z : 04-11-2008 alle 13:29. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:26.



















