Brauner: Tabelleneinträge mit JS

Auf meiner Seite befindet sich eine Tabelle mit folgendem Aussehen:
<table id="tablecomments">
<tr>
                  <td>Nickname (27.01.2007, 13:52): Kommentar <a href="#" onclick="loesche.comment(14, 'BzbOoJNC_TU'); return false;">Loeschen</a></td>
                </tr><tr>
                  <td>Nickname (27.01.2007, 13:51): Kommentar <a href="#" onclick="loesche.comment(13, 'BzbOoJNC_TU'); return false;">Loeschen</a></td>
                </tr><tr>
                  <td>Nickname (27.01.2007, 13:47): Kommentar <a href="#" onclick="loesche.comment(12, 'BzbOoJNC_TU'); return false;">Loeschen</a></td>
                </tr><tr>
                  <td>Nickname (27.01.2007, 13:47): Kommentar <a href="#" onclick="loesche.comment(11, 'BzbOoJNC_TU'); return false;">Loeschen</a></td>
                </tr><tr>
                  <td>Nicknameasd (27.01.2007, 13:42): Kommentarasdf <a href="#" onclick="loesche.comment(10, 'BzbOoJNC_TU'); return false;">Loeschen</a></td>
                </tr><tr>
                  <td>Nickname (27.01.2007, 13:41): Kommentartest <a href="#" onclick="loesche.comment(9, 'BzbOoJNC_TU'); return false;">Loeschen</a></td>
                </tr><tr>
                  <td>Nickname (26.01.2007, 19:40): Kommentar <a href="#" onclick="loesche.comment(8, 'BzbOoJNC_TU'); return false;">Loeschen</a></td>
                </tr><tr>
                  <td>Nickname (26.01.2007, 19:40): Kommentar <a href="#" onclick="loesche.comment(7, 'BzbOoJNC_TU'); return false;">Loeschen</a></td>
                </tr><tr>
                  <td>Nickname (26.01.2007, 19:38): Kommentara <a href="#" onclick="loesche.comment(6, 'BzbOoJNC_TU'); return false;">Loeschen</a></td>
                </tr><tr>
                  <td>Nickname (26.01.2007, 19:38): Kommentar <a href="#" onclick="loesche.comment(5, 'BzbOoJNC_TU'); return false;">Loeschen</a></td>
                </tr><tr><td>&nbsp;&nbsp;&nbsp;<a href="#" onclick="comment.getpage(2,'BzbOoJNC_TU'); return false;">&gt&gt</a></td></tr>
</table>

Mozilla Firefox:

Mithilfe von document.getElementById("tablecomments").innerHTML = pText;
verändere ich den Inhalt der Tablle ohne Probleme.

Internet Explorer:

Die Tabelle zu verändern, geht mit IE überhaupt nicht. Das pText habe ich mir ausgeben lassen, es entspricht dem, was zwischen den table tags steht, nur mit anderen Kommentaren/Nicknames, also genauso wie beim FF. Auch die Funktion document.getElementById("tablecomments").innerHTML = pText; wird mit Sicherheit ausgeführt.
Warum schafft IE es einfach nicht, die Tabelle zu verändern???

Ich habe schon mal ein wenig was über die DOM vom IE gelesen, die ich leider nicht ganz verstehe. Gibt es nichts entsprechendes zu ...innerHTML, was mit dem IE gehen würde?? Falls nicht, kann mir evtl jemand helfen, ...innerHTML entsprechend für den IE umzuwandeln?

  1. Hallo,

    Mozilla Firefox:

    Mithilfe von document.getElementById("tablecomments").innerHTML = pText;
    verändere ich den Inhalt der Tablle ohne Probleme.

    Welchen Inhalt hat „pText“?

    Ich habe schon mal ein wenig was über die DOM vom IE gelesen, die ich leider nicht ganz verstehe.

    DOM/IE - Ist das nicht ein Widerspruch in sich?! ;-)

    Falls du die Knotenerzeugung per DOM meinst: Kann ich dir nur empfehlen das zu lernen. Wenn du einmal damit umgehen kannst, kann das richtig Spaß machen.
    Das Beispiel, aus der SELFHTML-Dokumentation finde ich aber auch viel zu kompliziert.

    Ein Objekt das ein <div>-Element bildet und eine Überschrift und einen Textabsatz enthält, könnte z.B. so aussehen:

      
    var BeispielObjekt = document.createElement("div"); //neues Div-Objekt erstellen  
    with (BeispielObjekt){//um das Objekt nicht jedes Mal neu zu referenzieren  
     className = "mytd"; //so könnte man eine Klasse setzen  
     with (appendChild(document.createElement("h1"))){ //neues <h1>-Element erzeugen, einhängen und gleich wieder in ein „with“ packen  
      appendChild(document.createTextNode("Meine Überschrift")) //der <h1> einen Textknoten zuweisen  
     }  
     appendChild(document.createElement("p")){// einen Absatz einfügen  
      id = "Absatz_in_td"; //So kann man einem Knoten z.B. eine ID zuweisen  
      appendChild(document.createTextNode("hier könnte 'ne genze Menge Text stehen…"));  
     }  
    }  
      
    document.body.appendChild(BeispielObjekt); //So könnte man das Objekt z.B. am Ende des <body>-Elementes anhängen  
    
    

    Der Vorteil einer derartigen Programmierung ist, dass man jederzeit noch was verändern oder dynamisch anpassen kann. innerHTML ist mir da zu viel gefrickel. Wenn du die Kommentare entfernst ist das auch garnicht so viel Quelltext…

    Schade, dass es in PHP defaultmäßig kein DOM gibt, aber was man selber baut, versteht man dafür noch besser ;-)

    Gibt es nichts entsprechendes zu ...innerHTML, was mit dem IE gehen würde??

    Normalerweise müsste „innerHTML“ eher in gescheiten Browsern Probleme bereiten…

    mfg. Daniel

  2. Hi,

    Warum schafft IE es einfach nicht, die Tabelle zu verändern???

    Weil Du innerHTML falsch benutzt. Laut Doku von Microsoft (und die müssen es als Erfinder wissen) ist das hier nicht zulässig.

    Ich habe schon mal ein wenig was über die DOM vom IE gelesen, die ich leider nicht ganz verstehe. Gibt es nichts entsprechendes zu ...innerHTML, was mit dem IE gehen würde??

    Du kannst a) mit innerHTML die komplette Tabelle ins Dokument schreiben, oder mit DOM-Methoden (createElement() & Co.) die einzelnen Einträge. Beides funktioniert in allen modernen Browsern.

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!