Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.04.2014, 21:47
Профессор
Отправить личное сообщение для Veterinar Посмотреть профиль Найти все сообщения от Veterinar
 
Регистрация: 27.12.2013
Сообщений: 167

Очистка динамической таблицы
В скрытом окне "dialog" есть таблица с заголовками, при открытии окна, в эту таблицу загружаются Аяксом данные, добавляя строки.

При каждом новом открытии этого окошка данные загружаются снова, так-как параметры загрузки меняются.

При закрытии окна хорошо бы почистить таблицу, удалив добавленные к заголовкам строчки с данными.

Пожалуйста, подскажите, как узнать кол-во строк в таблице и как удалить все строки после первой (строка с заголовками).

В результате всяческой дури докатился вот до такого:
for (var i = 1; i<document.getElementById('show_equipment').getElementsByTagName('tr').length; i++) {
document.getElementById('show_equipment').deleteRow(i);	
}

Но даже эта бредятина не удаляет все строчки...

На JQUERY чо-то ничего путного не нашел, хотя, разумеется, всё это реализовано.

ЗЫ: не стреляйте в пианиста - он играет как умеет!

Последний раз редактировалось Veterinar, 24.04.2014 в 22:19.
Ответить с цитированием
  #2 (permalink)  
Старый 24.04.2014, 22:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Veterinar,

и читайте форум
Неправильное удаление.
Ответить с цитированием
  #3 (permalink)  
Старый 24.04.2014, 22:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Veterinar,
for (; document.getElementById('show_equipment').getElementsByTagName('tr').length > 1; ) {
document.getElementById('show_equipment').deleteRow(1);
}
Ответить с цитированием
  #4 (permalink)  
Старый 24.04.2014, 22:56
Профессор
Отправить личное сообщение для Veterinar Посмотреть профиль Найти все сообщения от Veterinar
 
Регистрация: 27.12.2013
Сообщений: 167

рони, удалять весь узел для чего?
Насколько я читал в JS есть способ удаления строки:
.deleteRow(i)
, где i - номер строки. Оно и удаляет, только никак не возьму в толк, почему не все строки? Подскажите пожалуйста!
document.getElementById('show_equipment').getElementsByTagName('tr').length
- возвращает правильное кол-во, а в цикле от 1 до кол-ва строк удаляются не все...
Ответить с цитированием
  #5 (permalink)  
Старый 24.04.2014, 23:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Veterinar
Оно и удаляет, только никак не возьму в толк, почему не все строки?
читайте ссылку - там написано почему.
<!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>
Ответить с цитированием
  #6 (permalink)  
Старый 24.04.2014, 23:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Veterinar,
length автоматически пересчитывается при удалении
Ответить с цитированием
  #7 (permalink)  
Старый 24.04.2014, 23:12
Профессор
Отправить личное сообщение для Veterinar Посмотреть профиль Найти все сообщения от Veterinar
 
Регистрация: 27.12.2013
Сообщений: 167

рони, спасибо!
Если честно, то не все понял, но постараюсь разобраться.
Пока не понятно в связи с чем возникает проблема в четности-нечетности.
Ответить с цитированием
  #8 (permalink)  
Старый 24.04.2014, 23:13
Профессор
Отправить личное сообщение для Veterinar Посмотреть профиль Найти все сообщения от Veterinar
 
Регистрация: 27.12.2013
Сообщений: 167

рони, во как! Спасибо огромное!
Ответить с цитированием
  #9 (permalink)  
Старый 25.04.2014, 15:05
Аспирант
Отправить личное сообщение для M-ka Посмотреть профиль Найти все сообщения от M-ka
 
Регистрация: 25.04.2014
Сообщений: 47

var i = document.getElementById('show_equipment').getEleme ntsByTagName('tr').length -1;

На сколько помню, приведенная запись, работает по разному в разных браузерах, так, как в ней написано не взять числовое значение количества элементов при обходе и уменьшать на 1. Хотелось бы получить длину массива уменьшенную на единицу для получения индекса элемента массива на итерацию цикла, но по факту происходит уменьшения индекса самой коллекции...
Такую ошибку браузеры по разному обрабатывают, кто то умалчивает и считает, как обход, а некоторые выдают ошибку или не правильно чето делают...
Точно уже не помню, но когда то столкнулся сам с подобной проблемой при обходах в циклах с length -1, так, не учел, что у нас возвращается на самом деле при getElements не массив, а коллекция элементов и это немного разные вещи. С учетом попытки уменьшения индекса вызывало проблему в цикле, вот только не помню на каком браузере и всех деталей но доставило все же проблем...

Последний раз редактировалось M-ka, 25.04.2014 в 15:15.
Ответить с цитированием
  #10 (permalink)  
Старый 26.04.2014, 13:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от M-ka
На сколько помню, приведенная запись, работает по разному в разных браузерах
вспомните пожалуйста в каком браузере это несработает иначе зачем писать предположения что это может где-то несработать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
фильтрация .csv таблицы br1ck Элементы интерфейса 0 13.11.2013 08:35
Чтение файла + создание динамической таблицы Lexx32 (X)HTML/CSS 1 11.09.2013 13:25
Передача динамической таблицы в Excel j.r.r Общие вопросы Javascript 5 30.06.2013 22:26
Через ajax отправить много данных из таблицы на сервер Heger jQuery 3 29.08.2012 18:51
Подсветка строки динамической таблицы mgramin Элементы интерфейса 22 16.06.2011 13:35