Steffen Flämig: Tabellenzellen stehen nicht senkrecht übereinander

Hallo,

ich erzeuge per JavaScript dynamisch mit "createElement(...)" eine Tabelle. Erst table, dann tbody, dann tr, dann td, und hänge mit appendChild alles der Reihe nach in einander ein.

Im IE entsteht so auch eine normale Tabelle, im Mozilla stehen die Zellen aber nicht senkrecht übereinander, etwa so:

|---|-----|
|     |   |
-----------

Nun könnte ich jedem "td" eine "class" mit entsprechendem "width" zuweisen, aber geht das nicht einfacher?

Auf diese Art eine Tabelle zu erstellen ist eh schon viel mehr Code als es in reinem html wäre :-(.

Gruß
Steffen

  1. Hallo Steffen,

    Hallo,

    ich erzeuge per JavaScript dynamisch mit "createElement(...)" eine Tabelle. Erst table, dann tbody, dann tr, dann td, und hänge mit appendChild alles der Reihe nach in einander ein.

    so mache ich das auch und das klappt auch.

    Im IE entsteht so auch eine normale Tabelle, im Mozilla stehen die Zellen aber nicht senkrecht übereinander, etwa so:

    |---|-----|
    |     |   |

    Der FF hat die Möglichkeit, dynamisch erzeugtes HTML anzuzeigen: "Stelle Markieren -> rechte Maustaste -> Auswahl-Quelltext anzeigen". Vieleicht erkennst Du dann den Fehler schon. Sonst poste einen Link oder den relevanten Code.

    Nun könnte ich jedem "td" eine "class" mit entsprechendem "width" zuweisen, aber geht das nicht einfacher?

    das muss nicht sein.

    Auf diese Art eine Tabelle zu erstellen ist eh schon viel mehr Code als es in reinem html wäre :-(.

    Das hängt von der Größe der Tabelle ab. Oder kennst Du noch keine Schleifen? :-)

    Gruß, Jürgen

    1. Hallo Steffen

      oder benutzt Du vielleicht falsche display Eigenschaften?

      Ich dachte mal die diplay Eigenschaft von tbody wäre block ...

      Gruß

      Bernd

    2. Hallo,

      |---|-----|
      |     |   |

      Es liegt daran, dass ich das das <div> außenrum "float:left" gesetzt habe. Das muß ich auch weil mehere davon nebeneinander dargestellt werden.
      Hätte nicht gedacht, dass sich das auf Tabellenzellen auswirkt.
      Jetzt dachte ich, folgendes bringt den gewünschten Erfolg:

      meineZelle.style.float = "none";

      Aber leider nicht.

      Der FF hat die Möglichkeit, dynamisch erzeugtes HTML anzuzeigen: "Stelle Markieren -> rechte Maustaste -> Auswahl-Quelltext anzeigen". Vieleicht erkennst Du dann den Fehler schon. Sonst poste einen Link oder den relevanten Code.

      Danke für diesen Tip!

      Gruß
      Steffen

  2. Hallo,

    ich erzeuge per JavaScript dynamisch mit "createElement(...)" eine Tabelle. Erst table, dann tbody, dann tr, dann td, und hänge mit appendChild alles der Reihe nach in einander ein.

    Im IE entsteht so auch eine normale Tabelle, im Mozilla stehen die Zellen aber nicht senkrecht übereinander, etwa so:

    Kann ich nicht nachvollziehen.

    Auf diese Art eine Tabelle zu erstellen ist eh schon viel mehr Code als es in reinem html wäre :-(.

    Das kommt darauf an. Allerdings finde ich das DOM auch manchmal etwas kompliziert. IMHO sollte man wenigstens appendChild() mit document.createTextNode() sowie document.createElement() kombinieren (also 2 zusätzliche Methoden einführen). Man könnte sich sowas zwar selber schreiben, aber das funzt dann im IE wieder nicht…

    mfg. Daniel