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
});
}
Я что-то пропустил?
Ответы
Ответ 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();
для ссылка