@enrique, @josepepe:
la solución puede ser bien versátil dependiendo de la estructrua de la tabla. lamentablemente no hay forma en iexplorer (con excepción de la 9 según nos comenta @caricatos) que se pueda usar innerHTML en los elementos antes indicados: TBODY, THEAD, TFOOT, TABLE, TR. lo que si puedes hacer es crear una tabla desde su más profunda entrañas. es decir, desde un contendor creas la tabla.
Código:
// html ;
<div id="container"></div>
// javascript ;
document.getElementById('container').innerHTML = "<table><tr><td>cell</td></tr></table>";
por supuesto, esta alternativa no es cómoda si lo que se intenta es modificar una celda o fila. la otra alternativa es acceder con DOM a cada una de las celdas necesarias. la ruta del DOM varia dependiendo de la estructura de la tabla. es decir, si existe la presencia de TFOOT, THEAD, o más de un TBODY.
Código:
// asumiendo que table es la referencia a una tabla ;
table.rows[0].cells[0];
/* primera celda de primera fila. la fila a presentar en rows[0]
no se toma en cuenta si la seccion es THEAD, TBODY ni TFOOT.
es decir, es en relacion en orden de aparicion referente
al elemento TABLE.
*/
table.tBodies[0].rows[0].cells[0];
// primera celda de la primera fila en relacion al primer TBODY de la tabla ;
table.tHead.rows[0].cells[0];
// primera celda de la primera fila en relacion a THEAD ;
@enrique, con la alternativa de item o childNodes hay que tener mucho cuidado puesto que los TextNode tambien son nodos. sin embargo, en iexplorer el asunto es un tanto distinto, el navegador no crea TextNode cuando este consiste de caracteres en blanco (white-character: space, linefeed, new line, entre otros).