Очистка динамической таблицы
В скрытом окне "dialog" есть таблица с заголовками, при открытии окна, в эту таблицу загружаются Аяксом данные, добавляя строки.
При каждом новом открытии этого окошка данные загружаются снова, так-как параметры загрузки меняются. При закрытии окна хорошо бы почистить таблицу, удалив добавленные к заголовкам строчки с данными. Пожалуйста, подскажите, как узнать кол-во строк в таблице и как удалить все строки после первой (строка с заголовками). В результате всяческой дури докатился вот до такого: for (var i = 1; i<document.getElementById('show_equipment').getElementsByTagName('tr').length; i++) { document.getElementById('show_equipment').deleteRow(i); } Но даже эта бредятина не удаляет все строчки... На JQUERY чо-то ничего путного не нашел, хотя, разумеется, всё это реализовано. ЗЫ: не стреляйте в пианиста - он играет как умеет! |
|
Veterinar,
for (; document.getElementById('show_equipment').getElementsByTagName('tr').length > 1; ) { document.getElementById('show_equipment').deleteRow(1); } |
рони, удалять весь узел для чего?
Насколько я читал в JS есть способ удаления строки: .deleteRow(i), где i - номер строки. Оно и удаляет, только никак не возьму в толк, почему не все строки? Подскажите пожалуйста! document.getElementById('show_equipment').getElementsByTagName('tr').length- возвращает правильное кол-во, а в цикле от 1 до кол-ва строк удаляются не все... |
Цитата:
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> </head> <body> <table id="show_equipment"> <tr> <td>1</td> <td>1</td> </tr> <tr> <td>2</td> <td>2</td> </tr> <tr> <td>3</td> <td>3</td> </tr> <tr> <td>4</td> <td>4</td> </tr> <tr> <td>5</td> <td>5</td> </tr> </table> <script> for (var i = document.getElementById('show_equipment').getElementsByTagName('tr').length -1; i; i--) { document.getElementById('show_equipment').deleteRow(i); } </script> </body> </html> |
Veterinar,
length автоматически пересчитывается при удалении |
рони, спасибо!
Если честно, то не все понял, но постараюсь разобраться. Пока не понятно в связи с чем возникает проблема в четности-нечетности. |
рони, во как! Спасибо огромное!
|
var i = document.getElementById('show_equipment').getEleme ntsByTagName('tr').length -1;
На сколько помню, приведенная запись, работает по разному в разных браузерах, так, как в ней написано не взять числовое значение количества элементов при обходе и уменьшать на 1. Хотелось бы получить длину массива уменьшенную на единицу для получения индекса элемента массива на итерацию цикла, но по факту происходит уменьшения индекса самой коллекции... Такую ошибку браузеры по разному обрабатывают, кто то умалчивает и считает, как обход, а некоторые выдают ошибку или не правильно чето делают... Точно уже не помню, но когда то столкнулся сам с подобной проблемой при обходах в циклах с length -1, так, не учел, что у нас возвращается на самом деле при getElements не массив, а коллекция элементов и это немного разные вещи. С учетом попытки уменьшения индекса вызывало проблему в цикле, вот только не помню на каком браузере и всех деталей но доставило все же проблем... |
Цитата:
|
Часовой пояс GMT +3, время: 11:53. |