JQuery удалить последний столбец таблицы - PullRequest
15 голосов
/ 28 августа 2011

В настоящее время у меня есть таблица, которая может быть 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
    });
}

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

Ответы [ 3 ]

31 голосов
/ 28 августа 2011

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

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

$("#tableID th:last-child, #tableID td:last-child").remove();
6 голосов
/ 28 августа 2011

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

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

0 голосов
/ 13 декабря 2014

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

    //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();

для ссылка

...