Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/11/2014, 03:22
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Mostrar contenido de una fila en otra tabla

Podrías tener dos filas para cada ítem, en una iría el ítem y sus opciones de edición y, en la segunda, los sub-ítems, organizados dentro de otra tabla. Esta segunda fila estaría oculta y tendría un identificador único, de este modo, en la primera fila, tendrías un botón que, al pulsarlo, ejecutaría una función en la cual tomarías a la fila de abajo mediante el identificador que le hayas asignado y, según sea su estado de visibilidad, la muestres u ocultes.

Código HTML:
Ver original
  1.     <thead>
  2.         <tr>
  3.             <th>ÍTEM</th>
  4.             <th>OPCIONES</th>
  5.         </tr>
  6.     </thead>
  7.     <tbody>
  8.         <tr>
  9.             <td>Ítem 1</td>
  10.             <td>
  11.                 <button onclick = "mostrarOcultar('id_1')">Mostrar/Ocultar</button>
  12.             </td>
  13.         </tr>
  14.         <tr class = "oculta" id = "id_1">
  15.             <td colspan = "2">
  16.                 <table>
  17.                     <thead>
  18.                         <tr>
  19.                             <th>SUB-ÍTEM</th>
  20.                             <th>OPCIONES</th>
  21.                         </tr>
  22.                     </thead>
  23.                     <tbody>
  24.                         <tr>
  25.                             <td>Sub-ítem 1</td>
  26.                             <td>
  27.                                 <button>Editar</button>
  28.                             </td>
  29.                         </tr>
  30.                         <tr>
  31.                             <td>Sub-ítem 2</td>
  32.                             <td>
  33.                                 <button>Editar</button>
  34.                             </td>
  35.                         </tr>    
  36.                         <tr>
  37.                             <td>Sub-ítem 3</td>
  38.                             <td>
  39.                                 <button>Editar</button>
  40.                             </td>
  41.                         </tr>
  42.                     </tbody>
  43.                 </table>
  44.             </td>
  45.         </tr>
  46.         <tr>
  47.             <td>Ítem 2</td>
  48.             <td>
  49.                 <button onclick = "mostrarOcultar('id_2')">Mostrar/Ocultar</button>
  50.             </td>
  51.         </tr>
  52.         <tr class = "oculta" id = "id_2">
  53.             <td colspan = "2">
  54.                 <table>
  55.                     <thead>
  56.                         <tr>
  57.                             <th>SUB-ÍTEM</th>
  58.                             <th>OPCIONES</th>
  59.                         </tr>
  60.                     </thead>
  61.                     <tbody>
  62.                         <tr>
  63.                             <td>Sub-ítem 4</td>
  64.                             <td>
  65.                                 <button>Editar</button>
  66.                             </td>
  67.                         </tr>
  68.                         <tr>
  69.                             <td>Sub-ítem 5</td>
  70.                             <td>
  71.                                 <button>Editar</button>
  72.                             </td>
  73.                         </tr>
  74.                         <tr>
  75.                             <td>Sub-ítem 6</td>
  76.                             <td>
  77.                                 <button>Editar</button>
  78.                             </td>
  79.                         </tr>    
  80.                     </tbody>
  81.                 </table>
  82.             </td>
  83.         </tr>
  84.     </tbody>

Código CSS:
Ver original
  1. .oculta{
  2.     display: none;
  3. }

Código Javascript:
Ver original
  1. function mostrarOcultar(id){
  2.     var fila = document.getElementById(id);
  3.  
  4.     if (getComputedStyle(fila).display == "none"){
  5.         fila.style.display = "table-row";
  6.     }
  7.     else{
  8.         fila.style.display = "none";
  9.     }
  10. }

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