The_Fallen: Per JS table in div einfuegen

Moin,

der IE will mal wieder nicht so, wie ich will, also mal schauen, ob von Euch einer ne Idee hat...

Hier mal ein kleiner Test:

  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
   <head>  
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
      <title>JS table test</title>  
      <script type="text/javascript">  
         function addTable() {  
            var t = document.createElement('table');  
            t.border = '1';  
            var r = document.createElement('tr');  
            var c = document.createElement('td');  
            c.innerHTML = 'Hello world!';  
            r.appendChild(c);  
            t.appendChild(r);  
            document.getElementById("Test").appendChild(t);  
         }  
      </script>  
   </head>  
   <body>  
      <button onclick="addTable();">Click me!</button>  
      <br /><br />  
      <div id="Test">  
      </div>  
   </body>  
</html>  

Eine einfache HTML-Seite mit einem Button. Wenn dieser geklickt wird, wird dynamisch eine Tabelle erstellt und an den div-Container mit id 'Test' angehaengt.

Funktioniert einwandfrei in Firefox, Opera, Safari, Konqueror. Aber nicht im IE7...

Laut IE Developer Toolbar wird die Tabelle korrekt angelegt, sie wird anscheinend nur nicht gerendert. Wenn ich im IE nach dem 'Hello world' suche, findet er das sogar.

Irgendwer ne Idee, was hier falsch laeuft?

/fallen

  1. Der IE braucht immer ein tbody, sonst ist er unglücklich...

    Gruß, LX

    1. Das ging schnell... Und cool, das geht! Danke! :-)

      Der will ein tbody anscheinend aber nur bei dynamisch erzeugten Tabellen, oder? Ich hab in meinen statischen Tabellen nie ein tbody drin und das macht dem nichts aus...

      1. @@The_Fallen:

        Ich hab in meinen statischen Tabellen nie ein tbody drin

        Doch, das hast du immer (bei HTML und als solchem verarbeitetem XHTML).

        Mal auf die Schnelle aus dem Archiv rausgekramt: http://forum.de.selfhtml.org/archiv/2008/2/t167291/#m1091100, http://forum.de.selfhtml.org/archiv/2008/4/t169914/#m1110055

        Das Archiv ist voll davon. Oh Nostradamus ...

        Live long and prosper,
        Gunnar

        --
        Flughafen in Tempelhof
        findet jeder Hempel doof.
  2. Hi,

    wie schon erwähnt fehlt der tbody.

    Wenn du aber direkt die Table-DOM Methoden benutzt, brauchst du daran nicht mehr zu denken:

    var tr = table.insertRow(-1);
    var td = tr.insertCell(-1);

    Gruß!