name - jQuery borra todas las filas de la tabla excepto la primera
selectores jquery avanzados (13)
-Lo siento, es una respuesta muy tardía.
La forma más fácil que he encontrado para eliminar cualquier fila (y todas las demás filas a través de la iteración) es esta
$ (''# rowid'', ''# tableid''). remove ();
El resto es fácil.
Con jQuery, ¿cómo elimino todas las filas de una tabla, excepto la primera? Este es mi primer intento de usar selectores de índice. Si entiendo los ejemplos correctamente, lo siguiente debería funcionar:
$(some table selector).remove("tr:gt(0)");
que leería como "Ajustar alguna tabla en un objeto jQuery, luego eliminar todos los elementos ''tr'' (filas) donde el índice del elemento de tales filas es mayor que cero". En realidad, se ejecuta sin generar un error, pero no elimina ninguna fila de la tabla.
¿Qué me estoy perdiendo y cómo soluciono esto? Por supuesto, podría usar javascript directo, pero me estoy divirtiendo tanto con jQuery que me gustaría resolverlo con jQuery.
Considere una tabla con id tbl
: el código jQuery sería:
$(''#tbl tr:not(:first)'').remove();
Creo que esto es más legible dada la intención:
$(''someTableSelector'').children( ''tr:not(:first)'' ).remove();
El uso de niños también se ocupa del caso en el que la primera fila contiene una tabla al limitar la profundidad de la búsqueda.
Si tuvieras un elemento TBODY, puedes hacer esto:
$("someTableSelector > tbody:last").children().remove();
Si tiene elementos THEAD o TFOOT, deberá hacer algo diferente.
Esto debería funcionar:
$(document).ready(function() {
$("someTableSelector").find("tr:gt(0)").remove();
});
Esto funcionó de la siguiente manera en mi caso y funcionando bien.
$("#compositeTable").find("tr:gt(1)").remove();
Esto funciona perfectamente
$("#myTable tbody").children( ''tr:not(:first)'' ).html("");
Otra forma de lograr esto es usar la función empty () de jQuery con los elementos thead y tbody en tu tabla.
Ejemplo de una tabla:
<table id="tableId">
<thead>
<tr><th>Col1</th><th>Col2</th></tr>
</thead>
<tbody>
<tr><td>some</td><td>content</td></tr>
<tr><td>to be</td><td>removed</td></tr>
</tbody>
</table>
Y el comando jQuery:
$("#tableId > tbody").empty();
Esto eliminará todas las filas contenidas en el elemento tbody de su tabla y mantendrá el elemento thead donde debería estar su encabezado. Puede ser útil cuando desea actualizar solo el contenido de una tabla.
Para eliminar todas las filas, excepto la primera (excepto el encabezado), use el siguiente código:
$("#dataTable tr:gt(1)").remove();
Si fuera yo, probablemente lo reduciría a un solo selector:
$(''someTableSelector tr:not(:first)'').remove();
Su selector no necesita estar dentro de su eliminación.
Debería verse algo como:
$("#tableID tr:gt(0)").remove();
Lo que significa seleccionar todas las filas excepto la primera en la tabla con el ID de tableID y eliminarlas del DOM.
envuelto en una función:
function remove_rows(tablename) {
$(tablename).find("tr:gt(0)").remove();
}
entonces llámalo:
remove_rows(''#table1'');
remove_rows(''#table2'');
$("#p-items").find( ''tr.row-items'' ).remove();
$(''#table tr'').slice(1).remove();
Recuerdo haber encontrado que el ''corte'' es más rápido que todos los otros enfoques, así que simplemente póngalo aquí.