Estás intentando levantar las celdas antes de que sean cargadas por el DOM. Podés hacer algo mucho más sintético dejando tu JS de la siguiente manera:
Código Javascript
:
Ver originalvar columna=new Array();
columna[0]=1;
columna[1]=2;
columna[2]=3;
columna[3]=4;
columna[4]=5;
columna[5]=6;
var filas=new Array();
filas[0]=1;
filas[1]=2;
filas[2]=3;
filas[3]=4;
filas[4]=5;
var tabla=new Array();
tabla[0]=columna;
tabla[1]=filas;
function crearTabla(){
var tbl = document.getElementById("tabla");
var tblBody = document.createElement("tbody");
for (var i = 0; i < columna.length; i++) {
var fila = document.createElement("tr");
for (var j = 0; j < filas.length; j++) {
var celda = document.createElement("td");
celda.onclick = function(){
if(this.style.background=='green'){
this.style.background='orange';
}else{
this.style.background='green';
}
}
var textoCelda = document.createTextNode(i+"-"+j);
celda.appendChild(textoCelda);
fila.appendChild(celda);
}
tblBody.appendChild(fila);
}
tbl.appendChild(tblBody);
tbl.setAttribute("border", "2");
}
Y eliminando el llamado a functionTabla del click en tu tabla (valga la redundancia):
Código HTML:
<table id="tabla" onclick="funcionTabla()"></table> <!-- Elimina el llamado -->
<table id="tabla"></table> <!-- Que quede así -->
Saludos :)