JQuery удалять все строки таблицы, кроме первого

Используя jQuery, как мне удалить все строки в таблице, кроме первой? Это моя первая попытка использования индексных селекторов. Если я правильно понимаю примеры, то должно работать следующее:

$(some table selector).remove("tr:gt(0)");

который я бы читал как "Обернуть некоторую таблицу в объект jQuery, а затем удалить все" tr "элементы (строки), где индекс элемента таких строк больше нуля". В действительности, он выполняется без генерации ошибки, но не удаляет из нее строки.

Что мне не хватает, и как я могу это исправить? Конечно, я мог бы использовать прямой javascript, но мне очень нравится jQuery, что я хотел бы решить это с помощью jQuery.

Ответ 1

Это должно работать:

$(document).ready(function() {
   $("someTableSelector").find("tr:gt(0)").remove();
});

Ответ 2

Я думаю, что это более читаемо, учитывая намерение:

$('someTableSelector').children( 'tr:not(:first)' ).remove();

Использование дочерних элементов также учитывает случай, когда первая строка содержит таблицу, ограничивая глубину поиска.

Если у вас есть элемент TBODY, вы можете сделать это:

$("someTableSelector > tbody:last").children().remove();

Если у вас есть элементы THEAD или TFOOT, вам нужно сделать что-то другое.

Ответ 3

Другим способом для этого является использование функции 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, где должен находиться ваш заголовок. Это может быть полезно, если вы хотите обновить только содержимое таблицы.

Ответ 4

Если бы это был я, я бы, вероятно, сварил его до одного селектора:

$('someTableSelector tr:not(:first)').remove();

Ответ 5

Ваш селектор не обязательно должен находиться внутри вашего удаления.

Он должен выглядеть примерно так:

$("#tableID tr:gt(0)").remove();

Что означает выбор каждой строки, кроме первой в таблице с идентификатором идентификатора таблицыID и удалением из DOM.

Ответ 6

Рассмотрим таблицу с id tbl: код jQuery будет выглядеть следующим образом:

$('#tbl tr:not(:first)').remove();

Ответ 7

$('#table tr').slice(1).remove();

Я помню, как натолкнулся на этот "срез" быстрее всех других подходов, поэтому просто поместив его здесь.

Ответ 8

Чтобы удалить все строки, кроме первого (кроме заголовка), используйте приведенный ниже код:

$("#dataTable tr:gt(1)").remove();

Ответ 9

-Простите, что это очень поздний ответ.

Самый простой способ, которым я нашел удаление любой строки (и всех других строк с помощью итерации), - это

$( '# ROWID', '# TABLEID') удалить();.

Остальное легко.

Ответ 10

$("#p-items").find( 'tr.row-items' ).remove();

Ответ 11

завернутый в функцию:

function remove_rows(tablename) { 
    $(tablename).find("tr:gt(0)").remove();        
}

затем назовите его:

remove_rows('#table1');
remove_rows('#table2');

Ответ 12

Это работает отлично

$("#myTable tbody").children( 'tr:not(:first)' ).html("");

Ответ 13

Это работает следующим образом в моем случае и работает нормально

$("#compositeTable").find("tr:gt(1)").remove();

Ответ 14

Самый простой способ:

$("#mytable").find($("tr")).slice(1).remove()

-first ссылка на таблицу
-get список элементов и нарезать его и удалить выбранные элементы из списка