Hallo,
Ich probierte gerade aus, wie es funktionieren könnte, innerHTML und DOM zusammen zu verwenden, testete dabei mit Mozilla und IE6 und stosse dabei auf Unerwartetes.
Dabei sieht das HTML so aus:
<html><head><title></title>
<script language="javascript">
function appendtd() {
var parentnode = document.createElement('tr');
parentnode.innerHTML = "<td width=200>test</td>";
document.getElementById('appendhere').appendChild( parentnode.firstChild );
}
function appendtd2() {
var parentnode = document.createElement('table');
parentnode.innerHTML = "<tbody><tr><td width=200>test</td></tr></tbody>";
document.getElementById('appendhere').appendChild( parentnode.firstChild.firstChild.firstChild );
}
</script>
</head>
<body>
<table border=1>
<tbody>
<tr id="appendhere">
<td>
ein td
</td>
</tr>
</tbody>
</table>
<input type=button value="append td.child" onclick="appendtd()" />
<input type=button value="append table.child" onclick="appendtd2()" />
</body></html>
In beiden Browsern passiert bei Klick auf den ersten Button nichts. Nicht mal eine Fehlermeldung.
Bei Klick auf den zweiten Button zeigt mir Mozilla eine neue Tabellenzelle, IE6 sagt mir: "Unknown Runtime Error" in der Zeile: parentnode.innerHTML = "<tbody><tr....
Ich sehe keinen grossen semantischen Unterschied zwischen den beiden Varianten und kann mir schon gar nicht die Reaktionen der Browser erklären, kann das jemand von Euch? Ist der Code einfach zu "dreckig"?
Gruss, Waldemar