Подтвердить что ты не робот

JQuery удаляет последний столбец таблицы

В настоящее время у меня есть таблица, которая может быть N столбцов и N строк. В интерфейсе у меня есть кнопка для удаления последнего столбца, но я не могу понять, как удалить последний td из всех строк, что я до сих пор сделал, чтобы удалить первую строку td и последней строки td, но оставим там остальных.

Вот мой код (только удаляет последний заголовок в настоящее время):

function removeTableColumn() {
    /*
        removeTableColumn() - Deletes the last column (all the last TDs).
    */
    $('#tableID thead tr th:last').remove(); // Deletes the last title
    $('#tableID tbody tr').each(function() {
        $(this).remove('td:last'); // Should delete the last td for each row, but it doesn't work
    });
}

Я что-то пропустил?

4b9b3361

Ответ 1

Это потому, что селектор : last соответствует только последнему элементу в наборе.

Возможно, вы ищете : last-child, который соответствует элементам, которые являются последним потомком их родителя:

$("#tableID th:last-child, #tableID td:last-child").remove();

Ответ 2

:last возвращает последний элемент, найденный селектором. Таким образом, #tableID tr td:last вернет только один td.

Вы можете выбрать последний td каждого tr, чтобы сделать это:

$('#tableID tr').find('th:last, td:last').remove();

Ответ 3

Вы можете удалить любой столбец из таблицы, подобной этой

    //remove the 1st column
     $('#table').find('td,th').first().remove();

    //remove the 1st column
    $('table tr').find('td:eq(1),th:eq(1)').remove();

   //remove the 2nd column
   $('table tr').find('td:eq(1),th:eq(1)').remove();

   //remove the nth column
   $('table tr').find('td:eq(n),th:eq(n)').remove();

для ссылка