Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.04.2011, 11:43
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

очистка таблицы
Здрасте, вообщем есть таблица из 10 строк, которая заполняется данными из объекта полученый ajaxom из php. Так вот когда в объекте случается меньше 10 элементов,то при заполнение таблицы старые данные в низу таблице остаются, а мне нужно чтобы как бы таблица очищалась перед новым заполнением ну или затиралась поверх пришедшими данными. Думал когда у объекта при заполнении кончаются элементы, остальные строки в таблице будут заполняться null, но нет почему то когда элементы кончаются в цикле то цикл сразу же обрывается и без разнице ему что стоит условие на 10 итераций.Как можно это усе сделать то?
Вот пример кода:
dt=JSON.parse(http_request.responseText);
t=document.getElementById('t1');
  for(i=0;i<10;i++)
 {
    r=t.rows[1+i];
    r.cells[1].innerText =dt[i].q;
    r.cells[0].innerText =dt[i].a;
 }

Последний раз редактировалось simple, 29.04.2011 в 11:47.
Ответить с цитированием
  #2 (permalink)  
Старый 29.04.2011, 12:19
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,597

Если не думать:
dt=JSON.parse(http_request.responseText);
t=document.getElementById('t1');
  for(i=0;i<10;i++)
 {
    r=t.rows[1+i];
    r.cells[1].innerText =dt[i]?dt[i].q:'null';
    r.cells[0].innerText =dt[i]?dt[i].a:'null';
 }
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 29.04.2011, 12:22
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

нужно добавить проверку
dt=JSON.parse(http_request.responseText);
t=document.getElementById('t1');
  for(i=0;i<10;i++)
 {
    r=t.rows[1+i];
    if ( i in dt ) {
        r.cells[1].innerText = dt[i].q;
        r.cells[0].innerText = dt[i].a;
    } else {
        r.cells[1].innerText = '';
        r.cells[0].innerText = '';
    }
 }
Ответить с цитированием
  #4 (permalink)  
Старый 29.04.2011, 12:48
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

Спасибо за ответы, но дело в том что если например в объекте dt 5 элементов а не 10 то цикл останавливается как только эти 5 элементов будут выбраны, делал проверку алертом после тело цикла значение i оно вообще не выводиться почему то. Другими словами таблица заполняется только таким количеством элементов которые присутствуют в объекте, не знаю почему так.
Ответить с цитированием
  #5 (permalink)  
Старый 29.04.2011, 13:55
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,597

Ложь. Проверье наши примеры.
Цикл прерывается из-за ошибки.
dt[i] - undefined
dt[i].q - ошибка
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 29.04.2011, 14:00
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

проверил, у меня ошибки не выводятся почему то в браузере гугла хром.
и вобще для чего нужен этот for in все про него пишут что к элементам объекта с его помощью можно достутчаться, ну пишу код
for(e in obj)
alert(e)
выдает 0,1,2,3,4 т.е порядковые номера
от php мне приходит массив [{"t":"1","q":"135","a":"1"},{"t":"1","q":"134","a" :"4"},{"t":"1","q":"132","a":"1"}] вот как к этомим объектам подобраться в цикле?

Последний раз редактировалось simple, 29.04.2011 в 14:05.
Ответить с цитированием
  #7 (permalink)  
Старый 29.04.2011, 14:08
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,597

Тут он нафиг не нужен. Маргинальное использование.)
obj={1:'один',zero:'ноль'}
for(e in obj)alert(e+' : '+obj[e])
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 29.04.2011, 14:16
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

не фига не работает выдает 1: [object Object],2: [object Object],3: [object Object]
может посоветуйти какой нибудь хороший редактор JS где можно выполнять скрипты а тоя все в блокноте делаю и в браузере запускаю а он даж ошибки элементарные не показывает этот гугла )

Последний раз редактировалось simple, 29.04.2011 в 14:21.
Ответить с цитированием
  #9 (permalink)  
Старый 29.04.2011, 14:20
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,597

Нифига не работает кое что между ушей.
toString объекта даёт [object Object]
Для того и используется for in.
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсветка столбцов таблицы ctocopok Элементы интерфейса 31 14.06.2011 01:42
Ширина таблицы Syltan (X)HTML/CSS 1 01.05.2010 22:33
смена фоновой картинки у таблицы cuberboy Общие вопросы Javascript 0 15.10.2009 23:06
Перемещение строк таблицы в Firefox barcelona jQuery 17 23.02.2009 15:41
Фиксированный заголовок таблицы ilshat Элементы интерфейса 6 20.12.2008 00:35