Te pongo esta variante que se entiende mejor
Código HTML:
Ver original<!DOCTYPE html>
<script type="text/javascript"> //<![CDATA[
function crea_tabla(){
var n=5;//filas
var n2=4;//columnas
var i=0;
var tblBody = document.getElementById("MiTabla").getElementsByTagName("tbody")[0]; // identifico el elemento donde hacer el appendChild de las filas
for (var f=0;f<n;f++) {
var fila = document.createElement("tr"); // creo una fila
for (var c=0;c<n2;c++) {
var celda = document.createElement("td"); // creo una celda
i++; // usamos i para crear id's únicos para los input si los requiere
var crearInput;
crearInput = document.createElement('input'); //creo un input
crearInput.type ="text"; // generando atributos del input
crearInput.name ="campo"; // generando atributos del input
crearInput.id ="campo_"+i; // generando atributos del input
celda.appendChild(crearInput); // meto dentro de la celda el input
fila.appendChild(celda); // meto la celda(que ya tiene el input dentro) dentro de la fila
}
tblBody.appendChild(fila); // agrego las filas al tbody
}
}
//]]>
<body onload="crea_tabla()">
SAludos