Stefan Franke: [JavaScript] Tabellenzeilen lesen, löschen, schreiben

Hallo!

Ich möchte mittels JavaScript eine Tabellenzeile einlesen, diese löschen und wieder schreiben können.

Jede Tabellenzeile ist durch eine ID zu identifizieren.

Ich schaffe es die Zeile auszulesen und zu löschen, wie kann ich sie aber wieder an ihre Ursprüngliche Position schreiben?

//lesen
var zeile = document.getElementById(tabellen_id).rows[zeilen_id];

//löschen
document.getElementById(tabellen_id).deleteRow(zeilen_id);

Sinn des ganzen ist ei Baummenu das mit JavaScript realisiert werden soll.

Für denk anstöße bin ich sehr dankbar.

Mit freundlichen Grüßen
Stefan Franke

  1. Hallo!

    Ich möchte mittels JavaScript eine Tabellenzeile einlesen, diese löschen und wieder schreiben können.

    Jede Tabellenzeile ist durch eine ID zu identifizieren.

    Ich schaffe es die Zeile auszulesen und zu löschen, wie kann ich sie aber wieder an ihre Ursprüngliche Position schreiben?

    //lesen
    var zeile = document.getElementById(tabellen_id).rows[zeilen_id];

    //löschen
    document.getElementById(tabellen_id).deleteRow(zeilen_id);

    Sinn des ganzen ist ei Baummenu das mit JavaScript realisiert werden soll.

    Für denk anstöße bin ich sehr dankbar.

    Mit freundlichen Grüßen
    Stefan Franke

    hoffe, das Quellcodeschnipsel hilft...

    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Unbenanntes Dokument</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script language="JavaScript" type="text/javascript">
    function textAusgeben(){
     alert(document.getElementById("myID").firstChild.data);
    }

    function textAendern(){
     document.getElementById("myID").firstChild.data="so geht's!";
     //oder halt den zu ändernden text als Parameter entgegenehmen
    }

    </script>

    </head>
    <table>
     <tr>
      <td id="myId">Mein Text
      </td>
     </tr>
    </table>
    <br/>
    <a onclick="textAusgeben()">textAusgeben</a>
    <a onclick="textAendern()">textAendern</a>

    <body>
    </body>
    </html>

  2. Hallo Stefan,

    wäre es nicht Sinnvoller nur den Inhalt zu überschreiben?
    Meine for - stellung zu dem ganzen:

    for(i=0;i<document.getElementById(table_id).childNodes[0].childNodes.length;i++)
       {
       document.getElementById(table_id).childNotes[0].childNotes[i]="neuer Inhalt oder ' '"
       }

    Gruß aus Berlin!
    eddi

    1. wäre es nicht Sinnvoller nur den Inhalt zu überschreiben?

      Nicht wirklich, da ich die Struktur auch grafisch darstellen lasse und die Zeile "hart" löschen muss.

      1. dann wird es alles etwas ausufernder:
        http://aktuell.de.selfhtml.org/artikel/javascript/table-obj/

        Gruß aus Berlin!
        eddi

        1. gruss Euch Beiden,

          dann wird es alles etwas ausufernder:
          http://aktuell.de.selfhtml.org/artikel/javascript/table-obj/

          "ausufernd" im sinne eines nicht wirklich richtig zu ende
             gedachten programmierkonzepts ist das richtige wort fuer
             den von mir dort verbrochenen quellcode - das fuer einen
             effektiven objektorientierten js-code so wichtige konzept
             der "prototypen" wird in diesem feature glatt von mir
             unterschlagen, da ich zu diesem zeitpunkt gerade die ersten
             schritte ueberhaupt in richtig oo machte und damals die
             maechtigkeit und die moeglichkeiten dieser sprache eben
             nur faszinierend erahnte aber bei weitem nicht alle
             zusammenhaenge wirklich so begriff, um mich der mittel,
             die einem dort an die hand gegeben werden, auch umfassend
             und sinnvoll bedienen zu koennen;

          einmal im jahr nehme ich mir das "table objekt" zur brust,
             um den code zu aktualisieren  -  wenn ich dann irgendwann
             mal feststellen sollte, dass es (fast) nichts mehr zu
             optimieren gibt, folgt ganz bestimmt die aktualisierung
             des von XaraX verlinkten feature artikels;

          code-masochisten kann ich bis dahin nur
             auf die letzten baustellen verweisen:

          30.04.2003 - (86.5 kByte)
             http://www.pseliger.de/jsExtendedApi/__tableConstructor.prev.030430.html

          09.05.2003 - (86.7 kByte)
             http://www.pseliger.de/jsExtendedApi/__tableConstructor.prev.030509.html

          18.06.2003 - (70.4 kByte)
             http://www.pseliger.de/jsExtendedApi/__tableConstructor.prev.030618.html

          29.06.2003 - (72.1 kByte)
             http://www.pseliger.de/jsExtendedApi/__tableConstructor.prev.030629.html

          30.06.2003 (ein aufgehuebschtes "030629")
             http://www.pseliger.de/jsExtendedApi/__tableConstructor.test.html

          zur verfuegung stehen die methoden:

          - TableCell.removeArguments
             - TableCell.setArguments

          - TableRow.removeArguments
             - TableRow.setArguments

          - Table.removeArguments
             - Table.setArguments
             - Table.getCode
             - Table.insertRows
             - Table.appendRows
             - Table.removeRows
             - Table.insertCols
             - Table.appendCols
             - Table.removeCols

          den inhalt einer zelle setzt man
             ueber das attribut "value":

          - TableCell.value

          abgesehen davon bieten die "Document Object Modell"e (DOM)
             heutiger moderner browser genuegend moeglichkeiten, um
             tabellen ohne den umweg ueber ein selbstgeschriebenes js-
             objekt zu manipulieren;

          @Stefan Franke:

          tabellenzeilen lassen sich im DOM auch ueber die style-
             eigenschaft "display" verstecken - bsp.:

          document.getElementsByTagName("tr")[trId].style.display = "none";
             document.getElementsByTagName("tr")[trId].style.display = "block";

          so long - peterS. - pseliger@gmx.net

          --
          sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)