Das hat bestimmt jeder schon x-mal gelesen: Firefox generiert die Tabelle anstandslos, bei IE tut sich gar nix. Was soll ich noch ausprobieren, um auch dem IE dieses Script beizubringen?
Es handelt sich dabei um eine Funktion, die in einem <div> mit der id "cards" Karten legt (,daher die komischen Variablennamen). Die Funktion enthält auch noch Gedöns zum Auswählen der Karten aus den Vorhandenen, aber das hab ich mal weggeschnitten. Den Rest habe mal kommentiert.
function deal(number) {
var loc = document.getElementById("cards"); // Der <div>-Block, in den die Tabelle kommen soll.
var childNodesLength = loc.childNodes.length; // Dies und die for-Schleife darunter löschen evtl vorhandene Sachen innerhalb des <div>s.
for(var i = 0; i < childNodesLength; ++i) {
loc.removeChild(loc.childNodes[0]);
}
var cid = 0; // Zählt die Tabellenzellen mit (zum Zuweisen einer ID zu jeder Zelle).
var table = document.createElement("table");
for(var i = 0; i < properties[1]; ++i) { // Die Tabellenreihen
var tr1 = document.createElement("tr");
table.appendChild(tr1); // Gleich rein mit der Reihe in die Tabelle. Hab gehört, dies könnte Stein des Anstoßes für den IE sein, aber ein Umstellen ans Ende hat nix gebracht.
for(var k = 0; k < properties[0]; ++k) { // Die Tabellenspalten
var tdc = document.createElement("td");
tr1.appendChild(tdc);
if(typeof(cards[cardsArr[cid]]) != "undefined") { // Tut nix zur Sache.
var href = document.createElement("a"); // Dummer Variablenname. Egal. Soll noch anders werden.
var card = document.createElement("img");
var attr = document.createAttribute("src"); // Ab hier werden die Attribute und deren Eigenschaften definiert.
var title = document.createAttribute("title");
var alt = document.createAttribute("alt");
var id = document.createAttribute("id");
attr.nodeValue = "img/" + cards[cardsArr[cid]]["file"];
title.nodeValue = cards[cardsArr[cid]]["name"];
alt.nodeValue = cards[cardsArr[cid]]["name"];
id.nodeValue = cid;
card.setAttributeNode(attr); // Hier werden die Attribute den Karten zugewiesen.
card.setAttributeNode(title);
card.setAttributeNode(alt);
card.setAttributeNode(id);
href.onclick = popdescr; // Da poppt dann so eine Info auf, tut nix zur Sache.
card.style.width = "109px";
card.style.height = "156px";
tdc.appendChild(href); // Der Link kommt in die Zelle
href.appendChild(card); // Das Bild kommt in den Link
}
cid++;
}
}
loc.appendChild(table); // Die Tabelle kommt, wenn sie fertig ist, in den <div>-Block.
}
Ja, so läuft der Hase. Wer's besser weiß, dem wär ich dankbar. Bis dann!