Table of Contents

Lección 3 de desarrollo web - Tablas

Matrices y Bucles de Javascript

Objetivo

Continuaremos construyendo nuestra tabla de estadísticas en el equipo de Colombia, pero lo haremos de manera más eficiente con javascript mediante el uso de matrices y bucles.

Preparacion

HTML

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Surname</th>
      <th>Nationality</th>
      <th class="age">Age</th>
      <th>Position</th>
    </tr>
  </thead>
  <tbody>
  </tbody>
</table>

CSS

td, th {
  border-width: 1px;
  border-style: solid;
}

td {
  padding-left: 10px;
  padding-right: 10px;
  padding-top: 10px;
  padding-bottom: 10px;
}

table {
  border-collapse: collapse;
}

#carlos {
  font-style: italic;
}

.age {
  background-color: yellow;
}

#carlos .age {
  font-weight: 900;
}

td.age {
  font-size: 150%;
}

Matrices

ospinaRemirez = ['David', 'Ospina Ramirez', 'Colombia', 33, 'Portero'];
statsRow = "<td>" + ospinaRamirez [0] + "</td>";
statsRow = statsRow + "<td>" + ospinaRamirez [1] + "</td>";
statsRow + = "<td>" + ospinaRamirez [2] + "</td>";
statsRow + = "<td>" + ospinaRamirez [3] + "</td>";
statsRow + = "<td>" + ospinaRamirez [4] + "</td>";
// agregar fila a la tabla
tableBody = document.getElementsByTagName ("tbody") [0];
newRow = tableBody.insertRow (0);
newRow.innerHTML = statsRow;
ospinaRamirez = ['David', 'Ospina Ramirez', 'Colombia', 33, 'Portero'];
statsRow = "<td>" + ospinaRamirez [0] + "</td>";
statsRow + = "<td>" + ospinaRamirez [1] + "</td>";
statsRow + = "<td>" + ospinaRamirez [2] + "</td>";
statsRow + = "<td>" + ospinaRamirez [3] + "</td>";
statsRow + = "<td>" + ospinaRamirez [4] + "</td>";

// agregar fila a la tabla
tableBody = document.getElementsByTagName ("tbody") [0];
newRow = tableBody.insertRow (0);
newRow.innerHTML = statsRow;

Matrices Multidimensionales

jugadores = [
  ['David', 'Ospina Ramirez', 'Colombia', 33, 'Portero'],
  ['Carlos', 'Eccehomo Cuesta Figueroa', 'Colombia', 22, 'Defensa'],
  ['Juan Guillermo', 'Cuadrado Bello', 'Colombia', 33, 'Centrocampista'],
  ['Radamel Falcao', 'García Zárate', 'Colombia', 35, 'Delantero']
          ];
// recorrer todos los jugadores
for (p = 0; p < players.length; p++) {
}
  // crear cadena de estadísticas
  statsRow = "<td>" + jugadores [p] [0] + "</td>";
  statsRow + = "<td>" + jugadores [p] [1] + "</td>";
  statsRow + = "<td>" + jugadores [p] [2] + "</td>";
  statsRow + = "<td>" + jugadores [p] [3] + "</td>";
  statsRow + = "<td>" + jugadores [p] [4] + "</td>";
  tableBody = document.getElementsByTagName ("tbody") [0];
  newRow = tableBody.insertRow(p);
  newRow.innerHTML = statsRow;
jugadores = [
  ['David', 'Ospina Ramirez', 'Colombia', 33, 'Portero'],
  ['Carlos', 'Eccehomo Cuesta Figueroa', 'Colombia', 22, 'Defensa'],
  ['Juan Guillermo', 'Cuadrado Bello', 'Colombia', 33, 'Centrocampista'],
  ['Radamel Falcao', 'García Zárate', 'Colombia', 35, 'Delantero']
          ];
          
tableBody = document.getElementsByTagName ("tbody") [0];

// recorrer todos los jugadores
para (p = 0; p <jugadores.longitud; p ++) {
  // crear cadena de estadísticas
  statsRow = "<td>" + jugadores [p] [0] + "</td>";
  statsRow + = "<td>" + jugadores [p] [1] + "</td>";
  statsRow + = "<td>" + jugadores [p] [2] + "</td>";
  statsRow + = "<td>" + jugadores [p] [3] + "</td>";
  statsRow + = "<td>" + jugadores [p] [4] + "</td>";
  
  // agregar fila a la tabla
  newRow = tableBody.insertRow (p);
  newRow.innerHTML = statsRow;
}

Siguiente: Ejercicio