Textknoten in TD-Element einhängen und anzeigen, Fehler im IE
André Laugks
- javascript
Hallo!
Ich möchte in dem table-Element ein tr-Element und in dem tr-Element ein td-Element erstellen. Unterhalb des td-Elementes möchte ich dann ein TextKnoten erstellen. Das funktioniert auch im Netscape7, Opera7 und Mozilla. Der IE will den Textknoten aber nicht anzeigen. Die beiden alert()'s zeigen mir den Zustand vor und nach dem einhängen. Nach dem Einhängen ist ein Knoten unterhalb des td's vorhanden.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Unbenannt</title>
<script type="text/javascript">
<!--
function einhaengen()
{
// neues TR Element
var neu_tr = document.createElement('tr');
// neues TD-Element
var neu_td_besch = document.createElement('td');
// neue Bezeichnung
var neu_text_besch = document.createTextNode("Vorname");
// TR unterhalbe von TABLE einhängen
document.getElementById("tabelle").appendChild(neu_tr);
// TD unterhalb des TR einhangen
document.getElementById("tabelle").getElementsByTagName("tr")[0].appendChild(neu_td_besch);
// Textknoten unterhalb vom TD einhängen
alert(document.getElementById("tabelle").getElementsByTagName("tr")[0].getElementsByTagName("td")[0].childNodes.length);
document.getElementById("tabelle").getElementsByTagName("tr")[0].getElementsByTagName("td")[0].appendChild(neu_text_besch);
alert(document.getElementById("tabelle").getElementsByTagName("tr")[0].getElementsByTagName("td")[0].childNodes.length);
}
//-->
</script>
</head>
<body onload="einhaengen();">
<table id="tabelle">
</table>
</body>
</html>
MfG, André Laugks
Upppsss...
IE
Es handelt sich um den IE6.
MfG, André Laugks
Hallo,
Upppsss...
IE
Es handelt sich um den IE6.
Der MSIE wünscht beim dynamischen Aufbau einer Tabelle über DOM unbedingt und dringendst einen TBODY. ;-))
viele Grüße
Axel
Hallo!
Der MSIE wünscht beim dynamischen Aufbau einer Tabelle über DOM unbedingt und dringendst einen TBODY. ;-))
Danke schön! Mit TBODY läuft es jetzt auch :-).
MfG, André Laugks
Hallo!
Habe heute wieder mal den vergesslichen...
Danke schön! Mit TBODY läuft es jetzt auch :-).
Stimmt..., wenn man sich durch den Dokumentenbaum hangelt und sich die Elemente anzeigen läst, bekommt man bei Tabellen TBODY angezeigt.
MfG, André Laugks
Hallo,
Danke schön! Mit TBODY läuft es jetzt auch :-).
Stimmt..., wenn man sich durch den Dokumentenbaum hangelt und sich die Elemente anzeigen läst, bekommt man bei Tabellen TBODY angezeigt.
Wie ich grade sehe, ist hier sogar der MSIE mal im Recht. Laut DTD ist das Element Table so definiert:
<!ELEMENT TABLE - -
(CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
CAPTION must occur zero or one time.
COL or COLGROUP may occur zero or more times.
THEAD must occur zero or one time.
TFOOT must occur zero or one time.
TBODY must occur one or more times.
Es _muss_ also je Tabelle mindestens ein TBODY-Element geben. Nur der Start-Tag ist, wie der End-Tag optional, wenn es nur einen TBODY in der Tabelle gibt. Ergo ist:
<table>
<tr>
<td>Text</td>
</tr>
</table>
zwar valides HTML, die Tabelle hat aber trotzdem ein Element TBODY.
http://www.w3.org/TR/html4/struct/tables.html
viele Grüße
Axel