Simone: Zelleninhalt ersetzen

Hallo,

ich habe Probleme bei folgender Funktion (NewSort()), die nur aufgerufen wird, wenn eine Zeile aus einer Tabelle, deren Zeilen dynamisch erzeugt werden, gelöscht wird.

function NewSort() {
 for (var j = 1; j < zeile; j++)
  //alert("Zeile: " + zeile + " j: " + j);
  var newFigure = document.createTextNode(j);
  var jRowFirstCell = document.getElementById("result").getElementsByTagName("tr")[j].getElementsByTagName("td")[0];
  jRowFirstCell.replaceChild(newFigure, jRowFirstCell.firstChild);
  //alert(j + " geschrieben");
}

Diese Funktion soll  den Inhalt (Zahlen von 1 bis...) der Tabelle (id = "result") der  1. Spalte jeder Zeile ersetzen durch die Nummerierung des Index (j). Leider klappt die nicht. Irgendwie wird nichts überschrieben. Vielleicht könnt ihr mir ja helfen...

  1. hi,

    var jRowFirstCell = document.getElementById("result").getElementsByTagName("tr")[j].getElementsByTagName("td")[0];

    Hiermit ermittelst du dir die Referenz auf eine Tabellenzelle.

    jRowFirstCell.replaceChild(newFigure, jRowFirstCell.firstChild);
      //alert(j + " geschrieben");

    Und hier willst du diese Tabellenzelle durch einen Textknoten ersetzen?
    Das ist falsch, Tabellenzeilen haben nur Tabellenzellen als Kindelemente.

    Du möchtest eigentlich den ersten Textknoten _in_ der Tabellenzelle durch einen neuen ersetzen?
    Dann könntest du zuächst mittels firstChild auf den Textknoten unterhalb der Tabellenzelle zugreifen.

    Aber du brauchst gar nicht unbedingt einen neuen Textknoten erzeugen und den vorhandenen durch diesen zu ersetzen - du kannst auch einfach der data-Eigenschaft eines bestehenden Textknotens einen neuen Wert zuweisen.

    Und statt dem Hantieren mit getElementsByTagName könnte die Benutzung von Table.rows und Tablerow.cells einfacher sein.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }