Ответ 1
Это должно работать:
$(document).ready(function() {
$("someTableSelector").find("tr:gt(0)").remove();
});
Используя jQuery, как мне удалить все строки в таблице, кроме первой? Это моя первая попытка использования индексных селекторов. Если я правильно понимаю примеры, то должно работать следующее:
$(some table selector).remove("tr:gt(0)");
который я бы читал как "Обернуть некоторую таблицу в объект jQuery, а затем удалить все" tr "элементы (строки), где индекс элемента таких строк больше нуля". В действительности, он выполняется без генерации ошибки, но не удаляет из нее строки.
Что мне не хватает, и как я могу это исправить? Конечно, я мог бы использовать прямой javascript, но мне очень нравится jQuery, что я хотел бы решить это с помощью jQuery.
Это должно работать:
$(document).ready(function() {
$("someTableSelector").find("tr:gt(0)").remove();
});
Я думаю, что это более читаемо, учитывая намерение:
$('someTableSelector').children( 'tr:not(:first)' ).remove();
Использование дочерних элементов также учитывает случай, когда первая строка содержит таблицу, ограничивая глубину поиска.
Если у вас есть элемент TBODY, вы можете сделать это:
$("someTableSelector > tbody:last").children().remove();
Если у вас есть элементы THEAD или TFOOT, вам нужно сделать что-то другое.
Другим способом для этого является использование функции empty() jQuery с элементами thead и tbody в вашей таблице.
Пример таблицы:
<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>
И команда jQuery:
$("#tableId > tbody").empty();
Это приведет к удалению всех строк, содержащихся в элементе tbody вашей таблицы, и сохраните элемент thead, где должен находиться ваш заголовок. Это может быть полезно, если вы хотите обновить только содержимое таблицы.
Если бы это был я, я бы, вероятно, сварил его до одного селектора:
$('someTableSelector tr:not(:first)').remove();
Ваш селектор не обязательно должен находиться внутри вашего удаления.
Он должен выглядеть примерно так:
$("#tableID tr:gt(0)").remove();
Что означает выбор каждой строки, кроме первой в таблице с идентификатором идентификатора таблицыID и удалением из DOM.
Рассмотрим таблицу с id tbl
: код jQuery будет выглядеть следующим образом:
$('#tbl tr:not(:first)').remove();
$('#table tr').slice(1).remove();
Я помню, как натолкнулся на этот "срез" быстрее всех других подходов, поэтому просто поместив его здесь.
Чтобы удалить все строки, кроме первого (кроме заголовка), используйте приведенный ниже код:
$("#dataTable tr:gt(1)").remove();
-Простите, что это очень поздний ответ.
Самый простой способ, которым я нашел удаление любой строки (и всех других строк с помощью итерации), - это
$( '# ROWID', '# TABLEID') удалить();.
Остальное легко.
$("#p-items").find( 'tr.row-items' ).remove();
завернутый в функцию:
function remove_rows(tablename) {
$(tablename).find("tr:gt(0)").remove();
}
затем назовите его:
remove_rows('#table1');
remove_rows('#table2');
Это работает отлично
$("#myTable tbody").children( 'tr:not(:first)' ).html("");
Это работает следующим образом в моем случае и работает нормально
$("#compositeTable").find("tr:gt(1)").remove();
Самый простой способ:
$("#mytable").find($("tr")).slice(1).remove()
-first ссылка на таблицу
-get список элементов и нарезать его и удалить выбранные элементы из списка