Foros del Web » Programando para Internet » Javascript »

Porque me duplica las celdas???

Estas en el tema de Porque me duplica las celdas??? en el foro de Javascript en Foros del Web. Esta funcion crea una tabla, pero me esta duplicando las celdas. Quien me podria ayudar de verdad. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function ...
  #1 (permalink)  
Antiguo 29/03/2010, 14:46
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 10 meses
Puntos: 0
De acuerdo Porque me duplica las celdas???

Esta funcion crea una tabla, pero me esta duplicando las celdas.
Quien me podria ayudar de verdad.

Código Javascript:
Ver original
  1. function crea_tabla(){
  2.     document.write("<table border='1'>");
  3.     for (var a=0;a<nrofilas;a++){
  4.         document.write('<tr>');
  5.         for (var b=0;b<nrocolumnas;b++){
  6.             for(i=0; i<2; i++){
  7.                 if((a*nrocolumnas+b)==((nombres2[i] * nombres3[i])-1)){
  8.                 document.write('<td border="1" width="45" height="45" background="#000000" style="cursor:pointer">'+nombres[i]+'</td>');
  9.                 }else{
  10.                 document.write('<td border="1" width="45" height="45" background="#000000" style="cursor:pointer">'+(a*nrocolumnas+b)+'</td>');
  11.                 }
  12.             }
  13.         }
  14.         document.write('</tr>');
  15.     }
  16.     document.write("</table>");
  17. }
  #2 (permalink)  
Antiguo 29/03/2010, 14:50
 
Fecha de Ingreso: octubre-2008
Mensajes: 81
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Porque me duplica las celdas???

Hola, creo que esta condicionante:

Código Javascript:
Ver original
  1. for(i=0; i<2; i++)

debe ser asi:

Código Javascript:
Ver original
  1. for(i=0; i<1; i++)
  #3 (permalink)  
Antiguo 29/03/2010, 14:51
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Porque me duplica las celdas???

Podria ser, pero no.
Tambien crei lo mismo.
  #4 (permalink)  
Antiguo 29/03/2010, 15:00
 
Fecha de Ingreso: octubre-2008
Mensajes: 81
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Porque me duplica las celdas???

Ya vi, quita esta condicionante:

Código Javascript:
Ver original
  1. for(i=0; i<2; i++){
  2. }
  #5 (permalink)  
Antiguo 29/03/2010, 15:07
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Porque me duplica las celdas???

Ahi si, pero al no cumplirse el if() me llena todas las celdas con el else, o sea, las posiciones de las mismas celdas:

Código Javascript:
Ver original
  1. if((a*nrocolumnas+b)==((nombres2[i] * nombres3[i])-1)){                document.write('<td border="1" width="45" height="45" background="#000000" style="cursor:pointer">'+nombres[i]+'</td>');}
  2. else{
  3. document.write('<td border="1" width="45" height="45" background="#000000" style="cursor:pointer">'+(a*nrocolumnas+b)+'</td>');                 }

lo otro es dejar esto:

Código Javascript:
Ver original
  1. else{
  2. document.write('<td border="1" width="45" height="45" background="#000000" style="cursor:pointer">&nbsp;</td>');                 }

Pero eso es para el else, si el if se cumple, debiera llenar las celdas con unos nombre predeterminados.
  #6 (permalink)  
Antiguo 29/03/2010, 15:27
 
Fecha de Ingreso: octubre-2008
Mensajes: 81
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Porque me duplica las celdas???

Si ya te pone el numero correcto de filas y celdas, ya no es problema de la tabla, sino de esta condicionante:

Código Javascript:
Ver original
  1. if((a*nrocolumnas+b)==((nombres2[i] * nombres3[i])-1)){

No se el contenido de tus arreglos, asi que no te podria decir algo. Analizalos y ve que es lo que quieres desplegar.

Última edición por Milen; 29/03/2010 a las 15:32

Etiquetas: celdas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:38.