Documentos de Académico
Documentos de Profesional
Documentos de Cultura
A pedido de un amigo, explicar como agregar y eliminar filas a una tabla con un formato
especfico utilizando jQuery.
Para empezar, tenemos que crear nuestra tabla, para el ejemplo, una tabla simple, con campos
para nombre, apellidos, sexo, una columna para eliminar y debajo un botn para agregar filas.
Aqui el cdigo de ejemplo de la tabla:
<table id="tabla">
<!-- Cabecera de la tabla -->
<thead>
<tr>
<th>Nombre</th>
<th>Apellidos</th>
<th>Sexo</th>
<th> </th>
</tr>
</thead>
</tbody>
</table>
<!-- Botn para agregar filas -->
<input type="button" id="agregar" value="Agregar fila" />
Para empezar tenemos una tabla simple, con una cabecera con los ttulos de cada campo, y
una fila base la cual estar oculta por defecto, ya que la utilizaremos como formato para
agregar las nuevas filas, y al final una fila de ejemplo la cual est visible.
A continuacin unos cuantos estilos, para que se vea mejor nuestra tabla:
<style type="text/css">
</style>
Bueno, ahora viene jQuery, que se encargar de los eventos de agregar y eliminar las filas:
<script type="text/javascript">
$(function(){
// Clona la fila oculta que tiene los campos base, y la agrega al final de
la tabla
$("#agregar").on('click', function(){
$("#tabla tbody tr:eq(0)").clone().removeClass('fila-
base').appendTo("#tabla tbody");
});
</script>
1. $(#tabla tbody tr:eq(0)), es un selector algo confuso, pero es simple, solo es necesario
avanzar por pasos: seleccionamos la tabla(#tabla), seguimos con el cuerpo de la tabla(tbody),
la primer fila del cuerpo(tr:eq(0), el cero indica la posicin, osea el cero es el primer elemento).
2. .clone(), clonamos lo que acabamos de seleccionar en el paso 1.
3. removeClass(fila-base), quitamos la clase CSS fila-base (la que mantiene oculta nuestra
fila base), mucha atencin en este punto: al remover la clase fila-base lo estamos haciendo
al clon de nuestra fila base.
4. .appendTo(#tabla tbody), agregamos el clon al cuerpo de la tabla #tabla tbody, por
defecto siempre se agrega al final o como ltimo elemento.