#javascript #jquery
#javascript #jquery
Вопрос:
у меня есть таблица, и у меня есть две кнопки для добавления и удаления строк в эту таблицу.
таким образом, добавление строки легко (я получаю 3 строки через ajax каждый раз).
теперь я хочу иметь возможность удалить последние 3 строки таблицы, нажав на кнопку удаления, поэтому, если нет какой-либо функции или …. для удаления последних дополнений к моей таблице! мне нужно самому удалить последние три строки таблицы
что-то вроде
$('#tbl tr:lt(3)').remove();
но последние 3 не первые!
или я должен сделать что-то глупое, например
function remove(){
var i ;
for(i=0 ; i < 3 ; i ){
$('#table tr:last').remove();
}
alert('removed');
}
Ответ №1:
$("table tr").slice(-3).remove();
Комментарии:
1. спасибо Крис, у меня есть еще один вопрос, почему это не работает: var row_count = $(this).parent().siblings(‘таблица tr’) . длина; я могу получить такую таблицу, но я не могу получить trs
2. Ужасно! Элементы таблицы HTML имеют коллекцию строк, самый простой и быстрый способ (если вы должны использовать jQuery) должен быть
$(#tableId)[0].rows.length
, или аналогичный.3. спасибо, что сработало, есть ли способ удалить последние 3 строки, используя объект $this ($this относится к кнопке)? $(this).parent().siblings(‘таблица tr’).slice(-3).remove();
Ответ №2:
Это не так глупо, это хороший обходной путь. Чтобы очистить его, я бы использовал
function remove(){
$('#table tr:last').remove();
$('#table tr:last').remove();
$('#table tr:last').remove();
alert('removed');
}
Ответ №3:
Я согласен, это не глупо. Но на вашем месте я бы добавил параметр, количество строк для удаления:
function removeLastRows(numberOfRows){
var i ;
for(i=0 ; i < numberOfRows ; i ){
$('#table tr:last').remove();
}
alert('removed');
}
Ответ №4:
Просто для сравнения с обычным JS,
function removeLastRows(table, n) {
if (!table || !n) return;
var row, rows = table.rows;
while (n--) {
row = rows[rows.length];
row.parentNode.removeChild(row);
}
}
removeLastRows(document.getElementById('table', 3));