Toon posts:

Hoe nieuw element parent maken van ander element

Pagina: 1
Acties:

Verwijderd

Topicstarter
Als ik een nieuw element aanmaak met document.createElement, hoe kan ik dat om een bestaande blok elementen 'leggen'; ik wil dus dat dat nieuwe element de parent wordt van een al bestaande (groep) element(en).
En liever geen innerHTML gebruiken (dan zou het makkelijk zijn). Ik probeer iets te maken in een HTC file en ik krijg nogal veel vastlopers als ik het op die manier doe.

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

this.parent = that.parent :?

(zo werkt het bij beehive iig :P )

Stop uploading passwords to Github!


Verwijderd

Ik denk dat je de node pointer moet opslaan in een variabele, zodat je de node kan vervangen met replaceChild, en daarna met appendChild de originele node als childNode va de nieuwe node hangen :)

Schematisch:
code:
1
2
3
4
5
newNode = document.createElement('div');
el = document.getElementById('someID');
oldNode = el.firstChild;
el.replaceChild(newNode, oldNode);
el.firstChild.appendChild(oldNode);

Ik denk niet dat het veel gemakkelijker kan :)

Verwijderd

Topicstarter
Dat ken ik niet. Ik ken een parent bij het gedoe met frames en ik ken een parentElement of parentNode en die zijn read-only.

Verwijderd

Topicstarter
Cheatah, dat voorbeeldje werkt wel als script in een document. Ik krijg het alleen niet als .htc script aan de praat.
code:
1
2
3
4
5
6
x = document.createElement('div');
x.style.backgroundColor='blue';
x.style.width=200;
old=element;
parentElement.replaceChild(x,element);
element.appendChild(old);

Ik krijg de inhoud niet terug. Het lijkt wel alsof die old niet bewaart. Doe ik iets fout?

Verwijderd

Topicstarter
Ik ben bang dat de manier waarop ik de replaceChild gebruik niet mag.

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 31-08 12:55
Ok, misschien is dit te simpel maar werkt dit niet gewoon?

//Create the element
MyNewElem = document.createElement("DIV");

//Get the hierarchy of old elements u want to append to
//the new element
MyOldElems = document.getElementById("SomeElemID");

//Append the old elements as children to the
//newly created element
MyNewElem.appendChild(MyOldElems);

//Make them visible by appending them to document.body
//or whatever
document.body.appendChild(MyNewElem);

Hoop dat je ermee uit de voeten kunt...

Suc6

Verwijderd

Topicstarter
Nou, ik hou juist van simpel, vooral als het ook nog werkt.
Het werkt ook nog als script in een document. Het is wel zo dat het desbetreffende element aan het einde van het document terechtkomt en niet op dezelfde plek terug.

Maar als .htc script geeft het weer hetzelfde probleem.
Maar als ik
code:
1
2
3
4
x = document.createElement('div');
y=element.parentElement.children[0];
x.appendChild(y);
element.parentElement.appendChild(x);

doe krijg ik wel de inhoud (gedeeltelijk en op een bizarre manier die ik niet wil).


Ik begin het vermoeden te krijgen dat element op een of andere manier een beetje een raar object is.

Ik stop er trouwens mee, ik ga slapen :Z , kan niet meer helder denken.

Verwijderd

Topicstarter
Ik zal denk ik nog wat dieper in de htc reference van microsoft moeten duiken.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Je kunt een object geen parent maken van een ander object. Wat je wel kunt doen is het andere object child maken van het ene object :)
Pagina: 1