Newsgroup: it.comp.lang.javascript
Titolo: DOM problemi con IE per creare TABLE

Ciao.
Il seguente codice funziona in FF e Opera
ma non con IE non riesco proprio a capire
perchè ? :(
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd
">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="JavaScript" type="text/JavaScript">
function buildTable()
{
    var content = document.getElementById('content');
    var mTable = document.createElement('table');
    mTable.setAttribute('cellspacing','0');
    mTable.setAttribute('cellpadding','0');
    var tr = document.createElement('tr');
    var td = document.createElement('td');
    td.appendChild(document.createTextNode('pippo'));
    tr.appendChild(td);
    mTable.appendChild(tr);
    alert(mTable);
    content.appendChild(mTable);
}
window.onload = function()
{
buildTable();
}
</script>
</head>
<body>
<div id="content"></div>
</body>
</html>
Bye ;)

 perchč ? :(
E la creazione, con conseguente inserimento nel DOM, del tbody? Dov'č?
-- 
~ "Non si chiama coraggio se non hai paura."
("Bounce")

Google rifiuta il reply, devo aprire un nuovo post.
Manca il tbody, prova questo:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd
">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="JavaScript" type="text/JavaScript">
function buildTable()
{
    var content = document.getElementById('content');
    var mTable = document.createElement('table');
    var mTbody = document.createElement('tbody');
    mTable.appendChild(mTbody);
    mTable.setAttribute('cellspacing','0');
    mTable.setAttribute('cellpadding','0');
    var tr = document.createElement('tr');
    var td = document.createElement('td');
    td.appendChild(document.createTextNode('pippo'));
    tr.appendChild(td);
    mTbody.appendChild(tr);



Grazie per i suggerimenti.
Visto che c'ero ho buttato giù queste
funzioni per la generazione di tabelle
via DOM.
Ogni suggerimento o miglioria
è bene accetto posto il codice
e un semplice esempio di utilizzo.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd
">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="JavaScript" type="text/JavaScript">
function getTable(cs,cp)
{
	var table = document.createElement('table');
	table.setAttribute('cellspacing',cs);
	table.setAttribute('cellpadding',cp);
	return table;
}
function getHeadTable(h,w)
{
	if(h.length!=w.length){return;}
	var tHead = document.createElement('thead');
	var hTr = document.createElement('tr');
	for (var i = 0; i < h.length; i++)
	{
		var th = document.createElement('th');
		th.setAttribute('width',w[i]);
		th.appendChild(document.createTextNode(h[i]));
		hTr.appendChild(th);
	}
	tHead.appendChild(hTr);
	return tHead;
}
function getFootTable(v)
{
	var tFoot = document.createElement('tfoot');
	var fTr = document.createElement('tr');
	for (var i = 0; i < v.length; i++)
	{
		var td = document.createElement('td');
		td.appendChild(document.createTextNode(v[i]));
		fTr.appendChild(td);
	}
	tFoot.appendChild(fTr);
	return tFoot;
}
function getBodyTable()
{
	var tBody = document.createElement('tbody');
	return tBody;
}
function test()
{
	var v = new Array();
	var content = document.getElementById('content');
	if(!content){return;}
	h = ['N°','Username'];
	w = ['50%','50%'];
	var table = getTable('0','0');
	var tHead = getHeadTable(h,w);
	var tBody = getBodyTable();
	var tdF = document.createElement('td');
	tdF.appendChild(document.createTextNode(2));
	var tdS = document.createElement('td');
	tdS.appendChild(document.createTextNode(3));
	var row = [tdF,tdS];
	var tr = document.createElement('tr');
	for (var i = 0; i < row.length; i++)
	{
		tr.appendChild(row[i]);
		v.push(row[i].firstChild.nodeValue);
	}
	table.appendChild(tHead);
	var tFoot = getFootTable(v);
	table.appendChild(tFoot);
	tBody.appendChild(tr);
	table.appendChild(tBody);
	content.appendChild(table);
}
window.onload = function()
{
test();
