André Mantz: Tabelle erweitern mit appendChild - geht nicht

Hallo zusammen,

ich habe in einem Dokument folgende Tabelle:

<table border id="test">
 <tr>
   <td>Überschrift</td>
 </tr>
</table>

nun möchte ich per Javascript eine Zeile hinzufügen:

function neueZeile()
 {
  var Tabelle = eval(document.getElementById("test"));

var Zeile = document.createElement("tr");

var Spalte = document.createElement("td");
  var Text = document.createTextNode("test");
  Spalte.appendChild(Text);
  Zeile.appendChild(Spalte);

Tabelle.appendChild(Zeile);
 }

Leider tut sich da gar nix. Ich kann zwar bestehenden Zeilen neue Spalten hinzufügen, das geht einwandfrei. Aber eine neue Zeile krieg ich einfach nicht an die Tabelle *örx*

Danke für Eure Hilfe

Gruß, André

  1. Hi,

    <table border id="test">
    <tr>
       <td>Überschrift</td>
    </tr>
    </table>

    nun möchte ich per Javascript eine Zeile hinzufügen:

    Je nach Browser ist ggf. zu berücksichtigen, daß intern noch ein tbody-Element in der Tabelle steht.
    Bei HTML 4.01 ist dieses tbody-Element ggf. implizit gegeben (beide tags des tbody-Elements sind optional).

    Siehe Elementdefinition von table:
    <!ELEMENT TABLE - -
         (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>

    Erst thead, tfoot und tbody enthalten die Zeilen:
    <!ELEMENT THEAD    - O (TR)+           -- table header -->
    <!ELEMENT TFOOT    - O (TR)+           -- table footer -->
    <!ELEMENT TBODY    O O (TR)+           -- table body -->

    wobei thead und tfoot nicht vorhanden sein müssen.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hallo Andreas,

      Je nach Browser ist ggf. zu berücksichtigen, daß intern noch ein tbody-Element in der Tabelle steht.
      Bei HTML 4.01 ist dieses tbody-Element ggf. implizit gegeben (beide tags des tbody-Elements sind optional).

      daran hatte ich gar nicht gedacht. Danke für die schnelle Hilfe.
      Wenn ich die Tabelle so aufbaue klappt es wunderbar:

      <table border>
       <thead>
        <tr>
         <td>Überschrift</td>
        </tr>
       </thead>
       <tbody id="test"></tbody>
      </table>

      Zu beachten ist noch, dass nun das TBODY-Tag die id erhält und nicht das TABLE-Tag.

      Gruß, André

      1. Hi,

        Wenn ich die Tabelle so aufbaue klappt es wunderbar:

        <table border>

        soweit ich weiß, ist das Minimieren eines Attributs nur dann erlaubt, wenn dieses genau einen zulässigen Wert hat (wie z.B. das selected- oder das disabled-Attribut) - bin mir da aber nicht 100% sicher...

        <thead>
          <tr>
           <td>Überschrift</td>
          </tr>
        </thead>
        <tbody id="test"></tbody>

        tbody muß aber mindestens eine tr enthalten (die wiederum mindestens eine td enthalten muß).

        </table>

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/