webForumDet fria alternativet

getElementById på en klonad node

2 svar · 396 visningar · startad av NoiseMaker

NoiseMakerMedlem sedan sep. 2001171 inlägg
#1

Tjena!

Jag har ett <fieldset> som innehåller ett formulär. Vid knapptryckning skall ett likadant formulär skapas under det befintliga ifall användaren vill mata in mer av samma typ av uppgifter (enkelt förklarat)

För att slippa skapa alla element och tilldela attribut med javascript tog jag en genväg och körde javascriptfunktionen clone() på elementet <fieldset>. Detta ger mig en variabel med en HTML-node i.

Vissa attribut i denna node måste jag såklart ändra. T.ex. attributet ID och liknande. Det jag får problem med är att använda getElementById på HTML-noden i variabeln. Någon som vet varför det inte funkar eller ännu bättre.. om det finns nån liknande smart lösning?

var mySet = document.getElementById("fieldset_1");
var mySetClone = mySet.cloneNode(true);

sen vill jag köra

mySetClone.getElementById("addButton_1").id = "addButton_2";

Osv osv. Hoppas ni fattar min aning stressiga förklaring. Felet som FF ger ifrån sig är att getElementById inte är någon funktion. Någon med goda ideer?

TroxyMedlem sedan mars 20041 505 inlägg
#2

getElementById() är en DOM-funktion som endast är definierad för document-objektet, inte en node.
Dessutom måste du klistra in din node i dokumentträdet med appendChild() innan den dyker upp.
Slutligen är du nog ute på hal is när du använder cloneNode(), jag tror att den buggar sig i IE.

Det är ganska slappt med funktioner för att hitta element.
Du får nog använda något snitsigt framework som t.ex. jQuery för att rota runt lättare bland elementen.
Alternativt så får du gå den jobbiga vägen och bygga ett helt nytt dynamiskt fieldset och skapa alla knappar med createElement() osv.

NoiseMakerMedlem sedan sep. 2001171 inlägg
#3

Misstänkte nästan att det lutade åt det hållet. Det får bli en mastig createElement och setAttribute snurra då. Tackar!

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)