Hallo,
Zusätzlich zum dem, was Rouven dir bereits gesagt hat (also dass „tbody“ fehlt):
<html>
<head>
<script language="javascript">
Hier fehlt das vorgeschriebene type-Attribut. „language“ kannst du dagegen weglassen.
function createTable(){
var col;
var row;for(var y = 0; y < 10; y++){
Das ist zwar nicht falsch aber zumindest nicht üblich. Für for-Schleifen verwendet man i.d.R. Buchstaben ab „i“. Das machst ein Script für andere überschaubarer.
col = document.createElement("tr");
for(var x = 0; x < 10; x++){
row = document.createElement("td");
row.style.width = 50;
Da du hier mit Stylesheets arbeitest, MUSST du auch eine Maßeinheit mit angeben.
row.style.height = 50;
row.style.textAlign = 'center';
row.innerHTML = x + '/' + y;
Wozu „innerHTML“, wenn du nur blanken Text einfügen willst? Nimm lieber das hier:
row.appendChild(document.createTextNode(x + '/' + y));
document.getElementById('t').appendChild(col);
<input type="button" id="b" onclick="createTable();">
<table border="1" id="t"></table>
Du musst die Tabelle nicht vorher schon im Quelltext haben. Erstelle lieber ein Objekt, das die gesamte Tabelle enthält.
Hier mal meine Version deines Scriptes:
function createTable(Button){
var Tabelle = document.createElement("table");
Tabelle.border = "1";
Tabelle.appendChild(document.createElement("tbody"));
with (Tabelle.firstChild){ //um die Tabelle nicht jedesmal neu referenzieren zu müssen
for (var i = 0; i < 10; i++){
appendChild(document.createElement("tr")); //Tabellenzeile anhängen
for (var j = 0; j < 10; j++){
lastChild.appendChild(document.createElement("td")); //Tabellenzelle anhängen
with (lastChild.lastChild){ //Alle weiteren Anweisungen auf die Tabellenzelle anwenden
appendChild(document.createTextNode(i + "/" + j)); //Text einfügen
style.width = "50px";
style.height = "50px";
style.textAlign = "center";
}
}
}
}
document.body.appendChild(Tabelle); //alternativ könntest du auch insertBefore verwenden
Button.value = "OK";
}
Dein HTML-Body könnte dann so aussehen:
<body>
<input type="button" onclick="createTable(this);">
</body>
Ich hoffe, die vielen „http://de.selfhtml.org/javascript/sprache/objekte.htm#with@title=with“-Abkürzungen sind jetzt nicht zu verwirrend.
mfg. Daniel