Toon posts:

[JS] removeChild doet raar in een for() loop

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een file browser, die ik schrijf in JavaScript met behulp van het DOM en XML.
Nou loop ik tegen een probleem aan, de removeChild() method doet raar.

Zie removechild_test.php en View Source voor de JavaScript code.

Als je op Clear klikt dan haalt ie niet alle <li> elementen (en haar childNodes) weg...

Kan iemand mij vertellen wat ik hier fout doe?

  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Misschien de loop andersom laten lopen:
code:
1
2
3
for (var i = items.length - 1; i > -1; i--) {
  this.List.removeChild( items[i] );
}

[ Voor 7% gewijzigd door André op 29-04-2005 15:16 ]


  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 08:54

Salandur

Software Engineer

of elke keer het eerste element weghalen:
code:
1
2
3
while (this.List.size() > 0) {
   this.List.removeCheld(this.List.item[0]);
}


Ik weet niet uit mijn hoofd de elementen die hier bij horen

[ Voor 31% gewijzigd door Salandur op 29-04-2005 15:34 ]

Assumptions are the mother of all fuck ups | iRacing Profiel


Verwijderd

Topicstarter
De oplossing van André werkt inderdaad, kan iemand mij vertellen waarom dit zo is?

Ik krijg namelijk meer van dit soort vage fouten in mijn functies, removeChild() werkt niet écht erg lekker...

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 07-05 11:11

alienfruit

the alien you never expected

Omdat elke keer als je een child weggooid er minder items in de array komen, en dus bijv. length niet meer klopt. Denk ik :|

Verwijderd

Topicstarter
Goeie inderdaad, ik ben nog niet zo vreselijk lang bezig met JavaScript, ik heb wel erg gemerkt dat je goed op je volgordes moet letten (qua code), vooral als je met meerdere externe scripts werkt...!

Hij werkt nu in ieder geval, dus bedankt voor de hulp!
Pagina: 1