2016-04-18 6 views
0

я пытаюсь удалить строки из таблицы по имени класса:Удаление строк из таблицы по имени класса

var tr = document.getElementsByClassName('edited'); 
var table = document.getElementById('messagebox'); 

for(var i = 0; i < tr.length ; i++){ 
    table.deleteRow(tr[i].rowIndex); 
} 

Но не все удалены

+1

Вы можете поделиться своим html? Или что-то еще, чтобы показать, какие из них не удалены. –

ответ

2

Не имея больше информации (HTML, например, и т.д.), я d, вероятно, проблема заключается в том, что вы удаляете строки из передней части списка.

Скажите, что у вас есть строки 2, 4 и 6, отредактированные. При удалении строки 2, строка 4 становится строкой 3 и строка 6 становится строкой 5, так что следующая строка удалить (первоначально 4) на самом деле 5), и т.д.

Использование for(var i = tr.length - 1; i >= 0; i--){

+0

Его решение для моей проблемы, но почему я не могу получить текст из ячейки? script.js: 144 Uncaught TypeError: Невозможно прочитать ячейки свойств неопределенных, когда tr [j] .cells [3] .innerHTML – karpengold

0
var tr = document.getElementsByClassName('edited'); 
var table = document.getElementById('messagebox'); 

Вы используется живая коллекция, она автоматически обновляется, когда вы делаете что-то с вашими элементами, но вам нужно использовать другие вещи.

elem.querySelectorAll(css) 

Это вернет элементы поиска.

elem.querySelector(css) 

Будет возвращен только первый элемент поиска.

Смежные вопросы