Tabelleneinträge mit JS
Brauner
- javascript
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> <a href="#" onclick="comment.getpage(2,'BzbOoJNC_TU'); return false;">>></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?
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
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