[js] Div dynamisch toevoegen tussen andere div's

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik gebruik deze code om dynamisch een div toe te voegen

code:
1
2
3
4
5
6
7
function createDiv() 
{ var _body = document.getElementsByTagName('body') [0];
var _div = document.createElement('div');
var _text = document.createTextNode('Creating Div Element')_div.appendChild(_text);
_body.appendChild(_div);}

window.onload = createDiv


Nu moet de nieuwe div terecht komen tussen div1 en div2.

code:
1
2
3
<div id="1"> </div>

<div id="2"> </div>


Ben al een tijdje aan het zoeken maar kom er nog niet echt uit. Ik weet ook niet echt hoe ik de vraag het best kan formuleren in google.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Zorg dat je een reference hebt naar het juiste element (getElementById) en kijk dan eens naar (bijv.) insertBefore...?

Overigens is een enkel-numeriek id zoals jij hebt (id="2") ongeldig:
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
en volgens mij klopt regel 4 niet en mis ik een ; tussen Element') en _div.

[ Voor 64% gewijzigd door RobIII op 23-07-2009 11:03 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
RobIII schreef op donderdag 23 juli 2009 @ 10:59:
Zorg dat je een reference hebt naar het juiste element (getElementById) en kijk dan eens naar (bijv.) insertBefore...?

Overigens is een enkel-numeriek id zoals jij hebt (id="2") ongeldig:

[...]
Bedankt, ga ik proberen. (id had ik even voor het voorbeeld gedaan)

Acties:
  • 0 Henk 'm!

Verwijderd

Je zou ook de nieuwe DIV een ID meegeven en dan in de CSS de plaats definiëren.
Geen idee waar je hem precies wilt hebben op het scherm maar als Div 1 links staat en Div 2 rechts en je wilt hem er precies tussen hebben, dan krijg je ongeveer dit:

Cascading Stylesheet:
1
2
3
4
#nieuwe_div {
position:absolute;
left:(aantal pixels van div 1);
} 

Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
position:absolute ? Nee dank je, waarom zou je dat doen? De insertBefore () welke RobIII opsomt doet perfect wat je wil.

March of the Eagles


Acties:
  • 0 Henk 'm!

  • PeterSelie
  • Registratie: December 2002
  • Laatst online: 18-09 14:19
Daarbij wil positioneren niet perfect hetzelfde weergegeven worden in elke browser met vaak alle hacks van dien, is het niet bedoelt voor dit exacte doel, terwijl insertBefore juist exact hiervoor bedoelt is.

Acties:
  • 0 Henk 'm!

Verwijderd

@Hacku en SoaDmaggot
Daar ben ik het ook wel mee eens maar het was meer een suggestie voor als je niet zo goed bent met javascript, dan is het misschien makkelijker om het in je CSS te zetten omdat je daar meer ervaring mee hebt.
Ik zou ook javascript gebruikt hebben hoor ;)

Acties:
  • 0 Henk 'm!

  • PeterSelie
  • Registratie: December 2002
  • Laatst online: 18-09 14:19
Wanneer een gebruiker slecht is in iets is het geen oplossing een manier aan te leren die naar waarschijnlijkheid problemen met zich meebrengt.
Javascript is aardig basic en zal je als designer toch wel in veel gevallen moeten aanhalen op punten waar CSS niet toereikend is of helemaal niet voor bedoeld is.
Pagina: 1