У меня есть функция, которая проверяет каждую ячейку в каждой строке таблицы на класс edit-error
.Если это найдено в какой-либо ячейке определенной строки (значение ячейки не прошло проверку), я удаляю класс edit-submit
из всей строки и снимаю флажок, который находится в первой td
этой строки.
Когда большое количество строк (более 1000), я борюсь с производительностью, поэтому я подумал, что могу попробовать циклы, но я не эксперт в JavaScript, поэтому ищу помощь в этом.
Исходный код выглядит следующим образом:
var checkErrors = function () {
$('#results tr:not(:first)').each(function () {
$('td:first input:checkbox', $(this)).attr('checked', 'checked');
$(this).addClass('edit-submit');
$(this).find('td').each(function () {
if ($(this).hasClass('edit-error')) {
$('td:first input:checkbox', $(this).parent('tr')).removeAttr('checked');
$(this).parent().removeClass('edit-submit');
}
});
});
}
Таблица имеет идентификатор #results
.Сначала я проверяю все флажки и добавляю класс edit-submit
в каждую строку, а затем перебираю все ячейки, проверяющие на наличие ошибок.
Мне нужна помощь в улучшении производительности этой функции.1015 *
РЕДАКТИРОВАТЬ
Было бы целесообразно добавить таблицу HTML.Извинения за это вот это:
<table id="results">
<tbody>
<tr>
<th> </th>
<th>Policy Number</th>
<th>Quota Code</th>
<th>Contract Date</th>
</tr>
<tr>
<td><input type="checkbox"></td>
<td class="edit-error">ABC123%</td>
<td>123</td>
<td class="edit-error">99/99/9999</td>
</tr>
<tr class="edit-submit">
<td><input type="checkbox" checked="checked"></td>
<td>ABC123</td>
<td>123</td>
<td>16/03/2012</td>
</tr>
</tbody>
</table>
Это будет показано на странице:
--------------------------------------------------
| | Policy Number | Quota Code | Contract Date |
--------------------------------------------------
| | ABC123% | 123 | 99/99/9999 |
--------------------------------------------------
| X | ABC123 | 123 | 16/03/2012 |
--------------------------------------------------