Dynamische Tabelle im IE

dadom110

Erfahrenes Mitglied
Hallo Zusammen,

ich habe hier ein miniProgrämmchen das mir mit dem IE mal wieder Sorgen bereitet.

Ich will anhand eines JS-Arrays dynamische eine Tabelle in einem DIV Aufbauen, das Ein-und Ausblendbar ist. Leider kommt es im IE zu keiner Anzeige (Opera und FF problemlos)

Javascript:
<script type="text/javascript">
function loadDivData() {
	categories=new Array("FastFood");
	for(i=0;i<categories.length;i++){
		cat=categories[i];
		result=loadCategory(cat);
		alert(result);
		eleTable=document.createElement("table");
		for (rowNo=0;rowNo<result.length;rowNo++){
			eleTableRow=document.createElement("tr");
			eleTableCell=document.createElement("td");
			//eleTableCell.setAttribute("onmouseover","document.getElementById('dynImg').setAttribute('src','./loadData.cgi?mode=image&id="+result[rowNo][0]+"');");
			eleTableCell.appendChild(document.createTextNode(result[rowNo]['title']));

			eleTableRow.appendChild(eleTableCell);
			eleTable.appendChild(eleTableRow);	
		}

		document.getElementById(cat+"B").appendChild(eleTable);
	}
}
</script>
</head>
<body onload="loadDivData()">
<div id="FastFood">
	<div id="FastFoodH" onclick="changeVisibility('FastFoodB');">FastFood</div>
	<div id="FastFoodB" style="height: 100px;width: 100px;"></div>
</div><br>

Wenn ich das ganze im IE laufen lasse, bildet er zwar korrekterweise die Tabelle innerhalb des DIVs, aber angezeigt wird leider gar nichts.

Das Generriert mir mein Java-Script Programm, was völlig korrekt funktioniert wenn ich es direkt in eine HTML schreibe:
HTML:
<DIV id="FastFood">
<DIV id="FastFoodH" onclick="changeVisibility('FastFoodB');">FastFood</DIV>
<DIV id="FastFoodB" style="DISPLAY: block; WIDTH: 100px; HEIGHT: 100px">
<TABLE>
	<TR>
		<TD>TestTITEL</TD>
	</TR>
</TABLE>
</DIV>
</DIV>

Jemand eine Idee warum der IE wieder zickt oder an welcher Stelle ich zu schlecht Programmiert habe :) ?

Grüße
Dom
 
Zuletzt bearbeitet von einem Moderator:
Hi,

der IE ist an der Stelle, an der Elemente in eine Tabelle eingehängt werden, etwas strenger. Soll heissen, eine Zeile kann nicht einfach in einen table-Knoten eingehängt werden, sondern nur in ein tbody-Objekt.

Versuch es mal so:
Code:
function loadDivData() {
    categories=new Array("FastFood");
    for(i=0;i<categories.length;i++){
        cat=categories[i];
        result=loadCategory(cat);
        alert(result);
        eleTable=document.createElement("table");
        var objTBody = document.createElement("tbody");
        eleTable.appendChild(objTBody);
        for (rowNo=0;rowNo<result.length;rowNo++){
            eleTableRow=document.createElement("tr");
            eleTableCell=document.createElement("td");
            //eleTableCell.setAttribute("onmouseover","document.getElementById('dynImg').setAttribute('src','./loadData.cgi?mode=image&id="+result[rowNo][0]+"');");
            eleTableCell.appendChild(document.createTextNode(result[rowNo]['title']));

            eleTableRow.appendChild(eleTableCell);
            objTBody.appendChild(eleTableRow);
        }

        document.getElementById(cat+"B").appendChild(eleTable);
    }
}

Ciao
Quaese
 

Neue Beiträge

Zurück