Georg: Problem mit appendChild / removeChild /insertBefore

Beitrag lesen

Hallo,

ich komme hier an einer Stelle einfach nicht mehr weiter und bräuchte Euren Rat.
Ich habe eine Tabelle in der Form hier

table
tbody
   tr
    td ... /td
   /tr
   tr
    td ... /td
   /tr
  ...
/tbody
/table

Was ich implementieren möchte ist eine funktion, um zwei Zeilen zu tauschen bzw, um eine Zeile nach unten|oben zu schieben.
Probleme dabei (Code unten): Bei der replaceChild-Methode wurde das Kind, mit welches das alte ersetzen sollte, gelöscht. Die insertBefore-Methode hat überhaupt nichs bewirkt.

Nun bin ich einen anderen Weg gegangen und habe versucht, die Zeilen zu löschen und später in veränderter Reihenfolge neu aufzubauen. Das klappt aber auch nicht, und jetzt seid ihr zunächst gefragt, zu ermitteln, warum das nicht ohne Weiteres so möglich.

Ich danke im Voraus ganz herzlich!

function move(parentName,elemName) {

parent = document.getElementById(parentName);
  nodes  = parent.childNodes;
  elem   = document.getElementById(elemName);

// neues Array zu Sichern der Kind-Knoten
  childArray = new Array();
  nrNodes = nodes.length;

// Bis hierher funktioniert alles ...
// nächste for-schleife: i=0 liefert ein text-Element
  var position;

// Array einlesen
  for (var i=1; i<nrNodes; i++) {
   childArray[i] = nodes[i];
  }

// Zeilen loeschen
  for (var i=1; i<nrNodes; i++) {
   parent.removeChild(nodes[i]);
  }

// ... und in neuer Reihenfolge einfuegen
  for (var i=1; i<nrNodes; i++) {
   parent.appendChild(childArray[i]);
  }
}