Tengo una tabla de 50 filas impares con 11 columnas. Cada fila tiene un único id
compuesto por id="row_<clientid>_rownumber"
. Hay una casilla de verificación en la segunda columna con id="group_<clientid>_<petid>_rownumber"
¿Hay una manera rápida de. Eliminar filas de la tabla con jQuery
Redacted Screenshot http://www.forsythesit.com.au/res/img/slowrowremoval.jpg
Cuando el usuario hace clic en una casilla de verificación Quiero eliminar todas las filas excepto que pertenecen a cualquier cliente seleccionado. Tengo el código que funciona de la siguiente manera:
var sClient = $(this).attr("id").substring(6); // trim off group_
sClient = sClient.substring(0,sClient.indexOf("_")); // trim off anything after clientid
$("tr[id^=row_]").not("tr[id^=row_" + sClient + "]").remove();
El problema es que se necesita tanto tiempo que en el IE me sale el "guión está tomando demasiado tiempo" advertencia.
¿Hay un método más rápido para eliminar muchas filas?
Por cierto: Se necesita 4,4 segundos utilizando jQuery 1.4.3 y 1.3 segundos con jQuery 1.4.2
problema resuelto gracias a todos. Pista final proporcionada por @VisusZhao. Este fragmento es de trabajo final:
var KeepRows = $("#bookingstable tbody tr[id^=row_" + sClient + "_]");
$("#bookingstable tbody").empty();
$("#bookingstable tbody").append(KeepRows);
Gracias a todos
¿Está seguro de que esto está causando el retraso? Parece que para ~ 50 filas esto no debería tomar mucho tiempo. –
Dudo que sea el código para obtener la cadena del cliente que es lenta, pero esto podría ser un poco más limpio: 'var sClient = $ (this) .attr (" id "). Split ('_') [1] ; 'divide la cadena por guiones bajos y luego agarra el bit del medio. – scunliffe
intente utilizar el selector: not() – bevacqua