Автор Тема: Как правильно удалить дочерний объект?  (Прочитано 3728 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн 4m@t!c

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
На скрепке лежит страница с формой. Форма простая - добавление/удалей полей формы. Хотелось бы узнать насколько глупо/приемлимо сделано добавление/удаление строк в таблице.
Есть строка таблицы, в ней есть ячейки с полями воода информации. мой алгоритм был таким:
1. Передать в функцию номер удаляемой строки.
2. В функции все значения заполненных полей смещаются на одну строку вверх, начиная с удаляемой строки.
3. Удаляется последний дочерний элемент , т.е. строка.
Предложили второй вариант, где удаляются все ячейки строки, а сама строка прячется.
что-то типа

function del_el(del_el_id) {
total_el=document.getElementById("tr-" del_el_id).childNodes.length;

for(
di=0;di<total_el;di++) {
//alert(document.getElementById("tr-" + del_el_id).childNodes[0].nodeName);
del_el_list=document.getElementById("tr-" del_el_id).childNodes[0];
del_el_list.parentNode.removeChild(del_el_list);
}
document.getElementById("tr-" del_el_id).style.display=\'none\';
}

И сказали, что глупый у меня вариант решения задачи..
Артисты не приехали - приехали цыгане

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Как правильно удалить дочерний объект?
« Ответ #1 : 26 Апреля 2005, 01:30:40 »
так пусть они обоснуют "глупость".
Серьезных глупостей не вижу, хотя все-таки лучше в функцию удаления передавать не текущий объект, а  ID строки, которую надо удалить :

         function addRow()
         {
            z++;
            tbody = partrow.parentNode;
            tr = document.createElement("TR");
            tr.setAttribute("id", "tr_"+z);
             .......
             tddelbut.innerHTML=\'\';
             ....

(код не проверял)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн 4m@t!c

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как правильно удалить дочерний объект?
« Ответ #2 : 26 Апреля 2005, 10:38:49 »
Цитировать
Серьезных глупостей не вижу, хотя все-таки лучше в функцию удаления передавать не текущий объект, а ID строки, которую надо удалить :

Т.е. с логикой все нормально, а огрех в реализации только в том, что я передаю не ID строки, а объект?
Артисты не приехали - приехали цыгане

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Как правильно удалить дочерний объект?
« Ответ #3 : 26 Апреля 2005, 11:52:52 »
Цитировать
4m@t!c:
а огрех в реализации только в том, что я передаю не ID строки, а объект

огрехом это называть не буду, просто считаю мой подход более удобным.
Логика ИМХО верная.
Спросил бы сам, что за глупость они нашли. ИМХО оставлять скрытые строки - тоже не лучший вариант
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн 4m@t!c

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как правильно удалить дочерний объект?
« Ответ #4 : 26 Апреля 2005, 11:57:34 »
Глупость в том, что я смещаю строки, в цикле переписывая содержимое полей ввода.
Артисты не приехали - приехали цыгане

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28