У меня есть таблица из 50 нечетных строк с 11 столбцами. Каждая строка имеет уникальный идентификатор
, состоящий из id = "row_
. Во втором столбце есть флажок с id = "group_
Отредактированный снимок экрана http://www.forsythesit.com.au/res/img/slowrowremoval.jpg
Когда пользователь устанавливает флажок, я хочу удалить все строки, кроме тех, которые принадлежат выбранному клиенту. У меня есть код, который работает следующим образом:
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();
Проблема в том, что он занимает так много времени, что в IE я получаю предупреждение «сценарий занимает слишком много времени».
Есть ли более быстрый способ удалить много строк?
Кстати. : Это занимает 4,4 секунды при использовании jQuery 1.4.3 и 1. 3 секунды с jQuery 1.4.2
Проблема решена спасибо всем. Последний совет предоставил @VisusZhao. Это последний рабочий фрагмент:
var KeepRows = $("#bookingstable tbody tr[id^=row_" + sClient + "_]");
$("#bookingstable tbody").empty();
$("#bookingstable tbody").append(KeepRows);
Всем спасибо