Ashura: dynamisch generierte tabelle

Beitrag lesen

Hallo Julian.

Ich möchte per Javascript-Funktion in eine bestehende div dynamisch eine Tabelle einfügen. Dafür habe ich folgendes Script geschrieben:

Welches sich noch massiv vereinfachen lässt.

var tableElement = document.createElement("table"); //table element kreieren
      var tableAttribut = document.createAttribute("id"); //attribut "id" kreieren
      tableAttribut.nodeValue = "popup_table"; //id-attribut zuweisen
      tableElement.setAttributeNode(tableAttribut);//attribut eintragen
      document.getElementById("popup_div").appendChild(tableElement); //table-element in div eintragen

  
~~~javascript
var tableElement = document.createElement('table');  
    tableElement.id = 'popup_table';  
document.getElementById('popup_div').appendChild(tableElement);

var trElement = document.createElement("tr"); //tr-element für Überschrift kreieren
      var trAttribut = document.createAttribute("id"); //attribut "id" kreieren
      trAttribut.nodeValue = "tr_titel"; //id-attribut zuweisen
      trElement.setAttributeNode(trAttribut);//attribut eintragen
      document.getElementById("popup_table").appendChild(trElement); //tr-element in table eintragen

  
~~~javascript
var trElement = tableElement.[link:http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html#ID-39872903@title=insertRow](-1);  
    trElement.id = 'tr_titel';

var tdElement = document.createElement("td"); //
      var tdAttribut = document.createAttribute("id"); //attribut "id" kreiern
      tdAttribut.nodeValue = "popup_titel"; //id-attribut zuweisen
      tdElement.setAttributeNode(tdAttribut);//attribut eintragen
      document.getElementById("tr_titel").appendChild(tdElement); //td-element in tr eintragen

  
~~~javascript
var tdElement = trElement.[link:http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html#ID-68927016@title=insertCell](-1);  
    tdElement.id = 'popup_titel';

jetzt dachte ich mir, dass ich mit folgendem Code-Schnipsel

[…]

einen Text in die td eintragen kann. Das funktioniert aber nicht, was mache ich falsch?

Was hat deine Fehlerdiagnose ergeben? Warum erwähnst du nicht, dass dieses Problem nur im IE auftaucht?

Der Text wird eingefügt, wass du an Hand der Ausgabe von innerHTML und dergleichen überprüfen kannst. Warum er jedoch nicht sichtbar ist, erschließt sich auch mir nicht. Selbst bei innerText wird nichts angezeigt, obwohl der Text eingefügt wurde.

Ich frage mich, über welchen der vielen Bugs des IE du hier gestolpert bist.

Einen schönen Sonntag noch.

Gruß, Ashura

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]