Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Циклическое добавление и удаление элементов, футер таблицы неизменен 
:(
    Опции темы
volhovec
Дата 16.11.2007, 11:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 26.6.2006

Репутация: нет
Всего: нет



Смысл такой.
Делаю файл аплоадер как на фликере
Проблема следующая...
При добавлнии файлов (первом) создается таблица, которая имеет список файлов, и 2 закрывающие строки (пустую - из соображений дизайна) и строку с информацие о файлах...

При первом добавлении всё ок. Но потом пользователь может добавить еще несколько файлов
и нужно сначала удалить футер, добавить строки, а потом снова приписать футер...
использую следующий код:

Код

function del_element(id) {
    var ob = document.getElementById(id);
    ob.innerHTML = '';
    ob.parentNode.removeChild(ob);
}

function fileQueued(file, queuelength) {
    var listingfiles = document.getElementById("SWFUploadFileListingFiles");

    if(!listingfiles.getElementsByTagName("table")[0]) {
        
        var table = document.createElement("table")
        table.className = "uploadedItems";
        listingfiles.appendChild(table);
        
        var tr_head = document.createElement("tr");
        table.appendChild(tr_head);
        
        var th = document.createElement("th");
        th.className = "fc";
        th.appendChild(document.createTextNode("Файл"));
        tr_head.appendChild(th);
        
        th = document.createElement("th");
        th.appendChild(document.createTextNode("Размер"));
        tr_head.appendChild(th);
        
        th = document.createElement("th");
        th.appendChild(document.createTextNode("Удалить"));
        tr_head.appendChild(th);
    }
    
    
    listingfiles = listingfiles.getElementsByTagName("table")[0];
    if (document.getElementById('clear_filelist_td') != null)
    {
        del_element('clear_filelist_td');
    }
    if (document.getElementById('filelist_total_count_tr') != null)
    {
        del_element('filelist_total_count_tr');
    }

    var tr = document.createElement("tr");
    tr.id = file.id;
    listingfiles.appendChild(tr);
    
    var td = document.createElement("td");
        td.className = "fc";
        td.id = file.id + "progress";
        td.appendChild(document.createTextNode(file.name));
        tr.appendChild(td);
        
        td = document.createElement("td");
        
        if (file.size > 1024)
        {
            if (file.size > 1048576)
            {
                var filesize = Math.round(file.size*100/1048576)/100 + " Mb";
            }
            else
            {
                var filesize = Math.round(file.size*100/1024)/100 + " Kb";
            }
        }
        else
        {
            var filesize = file.size + " b";
        }
        td.appendChild(document.createTextNode(filesize));
        tr.appendChild(td);
        
        td = document.createElement("td");
        td.className = "lc";
        var id_del = file.id + "last_del_td";
        td.innerHTML = "<span id='" + id_del + "' style='display:block;'><a href='javascript:swfu.cancelFile(\"" + file.id + "\");' class='trash' title='удалить' id='" + file.id + "deletebtn'><!-- --></a></span>";
        tr.appendChild(td);
        if (document.getElementById('clear_filelist_td') == null)
        {
            tr = document.createElement("tr");
         tr.id = "clear_filelist_td";
         tr.className = "empty";
         table.appendChild(tr);
         
         td = document.createElement("td");
         td.className = "fc";
         td.appendChild(document.createTextNode(" "));
         tr.appendChild(td);
         
         td = document.createElement("td");
         td.appendChild(document.createTextNode(" "));
         tr.appendChild(td);
         
         td = document.createElement("td");
         td.appendChild(document.createTextNode(" "));
         tr.appendChild(td);
        }
        if (document.getElementById('filelist_total_count_tr') == null)
        {
            tr = document.createElement("tr");
         tr.id = "filelist_total_count_tr";
         tr.className = "summ";
         
         table.appendChild(tr);
         td = document.createElement("td");
         td.colSpan   = "3";
         td.innerHTML = "<span>Всего: <b>4,42мб</b></span>3 файла <a href=\"#\">добавить еще?</a>";
         tr.appendChild(td);
        }
    document.getElementById(swfu.movieName + "UploadBtn").style.display = "block";
}


но при этом получается так что дпри первом добавлении всё ок, а при последующих футер пропадает. как быть?

если del_element заменяю на 
Код

deleteRow(document.getElementById('filelist_total_count_tr'));

то при выборе нескольких файлов - имее только одну строку с описанием... а выбор последующих ничего не меняет в таблице((

Это сообщение отредактировал(а) volhovec - 16.11.2007, 11:24
PM MAIL   Вверх
solenko
Дата 16.11.2007, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 9
Всего: 67



А зачем вам удалять футер? Можно же просто вставить строку перед ним через DOM.
http://www.w3schools.com/htmldom/dom_obj_table.asp


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
volhovec
Дата 16.11.2007, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 26.6.2006

Репутация: нет
Всего: нет



Цитата(solenko @ 16.11.2007,  13:35)
А зачем вам удалять футер? Можно же просто вставить строку перед ним через DOM.
http://www.w3schools.com/htmldom/dom_obj_table.asp

сделал нечто подобное.
добавил сначала tfooter а в него строки футера.
теперь когда я добавляю tr чаилдом к самой таблице - они идут перед футером
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.