Foros del Web » Programando para Internet » Javascript »

Eliminar celdas vacías con javascript

Estas en el tema de Eliminar celdas vacías con javascript en el foro de Javascript en Foros del Web. Hola amigos del foro tengo una duda que ustedes con su conocimiento me podrán resolver tengo una tabla html y lo que que estoy realizando ...
  #1 (permalink)  
Antiguo 26/02/2014, 22:44
Avatar de Elvixx10  
Fecha de Ingreso: agosto-2012
Mensajes: 40
Antigüedad: 11 años, 8 meses
Puntos: 1
Pregunta Eliminar celdas vacías con javascript

Hola amigos del foro tengo una duda que ustedes con su conocimiento me podrán resolver tengo una tabla html y lo que que estoy realizando es un script para poder eliminar aquellas celdas cuyo valor sea 0 o null con base a esto las demás celdas se correaran y seguirán el orden correcto.
  #2 (permalink)  
Antiguo 26/02/2014, 23:32
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Eliminar celdas vacías con javascript

Supongo que cuando te refieres a celdas cuyo valor sea cero o nulo te refieres a celdas sin contenido. De ser así, podrías hacerlo así:

Código HTML:
Ver original
  1.     <tr>
  2.         <td>J</td>
  3.     </tr>
  4.     <tr>
  5.         <td></td>
  6.     </tr>
  7.     <tr>
  8.         <td>Y</td>
  9.     </tr>
  10.     <tr>
  11.         <td></td>
  12.     </tr>
  13.     <tr>
  14.         <td>A</td>
  15.     </tr>
  16.  
  17. <button>Eliminar</button>

Código Javascript:
Ver original
  1. var filas = document.getElementsByTagName("tr"),
  2.     total = filas.length,
  3.     boton = document.getElementsByTagName("button")[0];
  4.  
  5. boton.addEventListener("click", function(){
  6.     for (i = 0; i < total; i++){
  7.         var celda = filas[i].getElementsByTagName("td")[0];
  8.         if (!celda.innerHTML.length)
  9.             filas[i].style.display = "none";
  10.     }
  11. }, false);

Cuando le doy un clic al botón, busco en cada fila de la tabla a la celda que contiene, si no posee contenido, la oculto.

DEMO

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 27/02/2014, 10:33
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: Eliminar celdas vacías con javascript

Es preferible comprobar si un elemento no tiene hijos mediante hasChildNodes().

Aún así creo que no se refería a eso...
  #4 (permalink)  
Antiguo 27/02/2014, 11:00
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Eliminar celdas vacías con javascript

Hola:

¿Cuál es el problema con las celdas vacías...? Si eliminas un tag "td", seguro que descuadras la tabla... si hay solo una fila o columna, deberías tratar la estructura como una lista... de otra manera tendrías que considerar atributos adicionales como colspan o rowspan.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 27/02/2014, 14:49
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Eliminar celdas vacías con javascript

Cita:
Iniciado por PHPeros Ver Mensaje
Es preferible comprobar si un elemento no tiene hijos mediante hasChildNodes().

Aún así creo que no se refería a eso...
Claro, es lo que yo suelo hacer, pero para el ejemplo que mostré (porque eso fue lo que supuse a lo que se refería), basta con eso.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: celdas, html, valor
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 15:01.