llenar - eliminar todas las filas de una tabla javascript
Eliminar todas las filas en una tabla HTML (17)
Puntos a destacar, sobre los errores comunes:
Si te gusta el código para iniciar el índice desde 0 (o algún índice desde el principio),
entonces, la solución correcta es:
var tableHeaderRowCount = 1;
var table = document.getElementById(''WRITE_YOUR_HTML_TABLE_NAME_HERE'');
var rowCount = table.rows.length;
for (var i = tableHeaderRowCount; i < rowCount; i++) {
table.deleteRow(tableHeaderRowCount);
}
1. el argumento para deleteRow es fijo
esto es necesario ya que al eliminar una fila, el número de filas disminuye.
es decir; para cuando llegue (rows.length - 1), o incluso antes de que esa fila ya haya sido eliminada, entonces tendrá algún error / excepción (o uno silencioso).
2. rowCount se toma antes de que comience el ciclo for
dado que a medida que eliminamos "table.rows.length" seguirá cambiando, así que de nuevo tiene algún problema, solo las filas impares o pares solo se eliminan.
Ten cuidado con estos, ahorra tiempo, mucha suerte.
¿Cómo puedo eliminar todas las filas de una tabla HTML excepto las <th>
usando Javascript y sin recorrer todas las filas de la tabla? Tengo una mesa muy grande y no quiero congelar la UI mientras estoy recorriendo las filas para eliminarlas
Asigna una identificación o una clase para tu tbody.
document.querySelector("#tbodyId").remove();
document.querySelectorAll(".tbodyClass").remove();
Puede nombrar su id o clase como desee, no necesariamente #tbodyId
o .tbodyClass
.
Esta es una vieja pregunta, sin embargo, recientemente tuve un problema similar.
Escribí este código para resolverlo:
var elmtTable = document.getElementById(''TABLE_ID_HERE'');
var tableRows = elmtTable.getElementsByTagName(''tr'');
var rowCount = tableRows.length;
for (var x=rowCount-1; x>0; x--) {
elmtTable.removeChild(tableRows[x]);
}
Eso eliminará todas las filas, excepto la primera.
¡Aclamaciones!
Esto funciona en IE sin tener que declarar una var para la tabla y eliminará todas las filas:
for(var i = 0; i < resultsTable.rows.length;)
{
resultsTable.deleteRow(i);
}
Mantenga la <th>
fila en un <thead>
y las otras filas en <tbody>
luego reemplace <tbody>
con uno nuevo, vacío.
es decir
var new_tbody = document.createElement(''tbody'');
populate_with_new_rows(new_tbody);
old_tbody.parentNode.replaceChild(new_tbody, old_tbody)
Muy crudo, pero esto también funciona:
var Table = document.getElementById("mytable");
Table.innerHTML = "";
Necesitaba eliminar todas las filas, excepto la primera y la solución publicada por @strat, pero eso dio como resultado una excepción no detectada (hace referencia al nodo en contexto donde no existe). Lo siguiente funcionó para mí.
var myTable = document.getElementById("myTable");
var rowCount = myTable.rows.length;
for (var x=rowCount-1; x>0; x--) {
myTable.deleteRow(x);
}
Qué tal esto:
Cuando la página se carga por primera vez, haz esto:
var myTable = document.getElementById("myTable");
myTable.oldHTML=myTable.innerHTML;
Luego, cuando quieras despejar la mesa:
myTable.innerHTML=myTable.oldHTML;
El resultado será su (s) fila (s) de encabezado si eso es todo lo que comenzó, el rendimiento es mucho más rápido que el bucle.
Si no quiere eliminar th
y solo quiere eliminar las filas internas, esto está funcionando perfectamente.
var tb = document.getElementById(''tableId'');
while(tb.rows.length > 1) {
tb.deleteRow(1);
}
Si puede declarar una ID
para tbody
, simplemente puede ejecutar esta función:
var node = document.getElementById("tablebody");
while (node.hasChildNodes()) {
node.removeChild(node.lastChild);
}
Si tiene muchas <th>
filas menos que <th>
filas, puede recopilar todas las <th>
filas en una cadena, eliminar toda la tabla, y luego escribir <table>thstring</table>
donde se utilizó la tabla ser.
EDITAR: Donde, obviamente, "thstring" es el html para todas las filas de <th>
s.
Simplemente borre el cuerpo de la tabla.
$("#tblbody").html("");
Suponiendo que solo tiene una tabla para que pueda referenciarla solo con el tipo. Si no desea eliminar los encabezados:
$("tbody").children().remove()
de otra manera:
$("table").children().remove()
¡Espero eso ayude!
el código de dar abajo funciona muy bien. Elimina todas las filas, excepto la fila de encabezado. Entonces este código realmente t
$("#Your_Table tr>td").remove();
este es un código simple que acabo de escribir para resolver esto, sin quitar la fila del encabezado (la primera).
var Tbl = document.getElementById(''tblId'');
while(Tbl.childNodes.length>2){Tbl.removeChild(Tbl.lastChild);}
¡¡Espero que funcione para ti!!.
esto eliminará todas las filas:
$("#table_of_items tr").remove();
esto trabajaría la eliminación de iteración en la tabla HTML en nativo
document.querySelectorAll("table tbody tr").forEach(function(e){e.remove()})