Hi,
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.
Da es jedoch ohne Weiteres möglich ist hat sich dann Deine Frage erledigt? ;-)
Aber Scherz beiseite.
Wahsaga hat Dir schon einen guten Tip gegeben, aber falls er Dir zu sehr in's Detail geht hier nochmal in der Übersicht:
Dein Problem hast Du ja schon sehr gut erkannt.
Was ich implementieren möchte ist eine funktion, um zwei Zeilen zu tauschen
Du benötigst also etwas, das man im Programmiererbereich mit Englisch als Lingua Franca für gewöhnlich "Swapping" nennt. Getauscht wird genauso gewöhnlich mittels eines temporären Speichers.
function swap(one,two){
if(one && two){
var temp;
temp = one;
one = two;
two = temp;
return true;
}
return false;
}
Jetzt einfach einsetzen. "Einfach"? Ja, gut, aber _so_ schwer ist es auch nicht. Du mußt nur wissen, was genau Du austauschen möchtest. In Deinem Fall die Zeilen (Element "tr").
Als Idee:
function swapNodes(nodeOne, nodeTwo){
if(nodeOne && nodeTwo){
// Der Übersicht halber "Work on Copy".
// Aber wirklich _nur_ der Übersicht halber.
var copyOne = document.getElementById(nodeOne);
var cloneOne = copyOne.cloneNode(true);
var copyTwo = document.getElementById(nodeTwo);
var cloneTwo = copyTwo.cloneNode(true);
// Damit kann man jetzt oben beschriebenes Swapping
// ausführen.
copyOne.parentNode.replaceChild(cloneTwo, copyOne);
copyTwo.parentNode.replaceChild(cloneOne, copyTwo);
return true;
}
return false;
}
Auf die Gefahr hin mich zu wiederholen: obiger Code dient ausschließlich pädagogischen Zwecken und kann bei unsachgemäßer Anwendung zu bleibenden Schäden führen. Dito bei sachgemäßer Anwendung.
Aber ich hoffe das Prinzip ist soweit klar.
so short
Christoph Zurnieden