Du burde lave den, som i andet eksempel. Når du skriver den første kode, opretter browseren selv et tbody-element (prøv at teste med innerHTML).
Bruger du DOM, opretter browseren derimod ikke selv elementet - men det _skal_ være der, så du må selv oprette det =)
Prøv at kikke lidt på dette eksempel. Det gør det samme, men på en anden måde. Du sparer en masse oprettelser af elementer ved at oprette en template på onload:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<title>Smiley</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
var Smiley = ["ablow", "angry", "beg", "biggrin1", "biggrin2", "blink", "blush2",
"book", "bruce", "clap", "dance", "doh", "eek", "giggle", "help",
"hi", "idea", "innocent", "notworthy", "rits", "rolleyes", "rotfl",
"sad", "sadbye", "sleep"];
function createSmiley()
{
var oBody = document.getElementsByTagName("body")[0];
var oTable = oTmpl.table.cloneNode(true)
var oTBody = oTable.getElementsByTagName("tbody")[0];
oBody.appendChild(oTable);
for (var i = 0; i <= 4; i++)
{
var oRow = oTmpl.tr.cloneNode(true)
var aCell = oRow.getElementsByTagName("td");
for (var j = 0; j < aCell.length; j++)
{
var oCol = aCell[j];
oCol.getElementsByTagName("img")[0].setAttribute("src", Smiley[(i*4)+j]+".gif");
}
oTBody.appendChild(oRow);
}
}
var oTmpl = null;
window.onload = function() {
var oTbdy = document.getElementById("myTbody");
var oTable = oTbdy.parentNode;
var oRow = oTbdy.getElementsByTagName("tr")[0];
oTmpl = {tr: oRow.cloneNode(true)};
oTbdy.removeChild(oRow);
oTbdy.attributes.removeNamedItem("id"); // Fjern tbody'ens id-attribute, hvis flere skal indsættes
oTmpl.table = oTable.cloneNode(true);
oTable.parentNode.removeChild(oTable);
oTmpl.table.style.display = "block";
}
</script>
</head>
<body>
<a href="java script:createSmiley();">Smiley</a>
<table style="display:none">
<tbody id="myTbody">
<tr><td><img src=""></td><td><img src=""></td><td><img src=""></td><td><img src=""></td></tr>
</tbody>
</table>
</body>
</html>