Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: 4m@t!c от 25 Апреля 2005, 19:18:26

Название: Как правильно удалить дочерний объект?
Отправлено: 4m@t!c от 25 Апреля 2005, 19:18:26
На скрепке лежит страница с формой. Форма простая - добавление/удалей полей формы. Хотелось бы узнать насколько глупо/приемлимо сделано добавление/удаление строк в таблице.
Есть строка таблицы, в ней есть ячейки с полями воода информации. мой алгоритм был таким:
1. Передать в функцию номер удаляемой строки.
2. В функции все значения заполненных полей смещаются на одну строку вверх, начиная с удаляемой строки.
3. Удаляется последний дочерний элемент , т.е. строка.
Предложили второй вариант, где удаляются все ячейки строки, а сама строка прячется.
что-то типа

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

for(di=0;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\';
}

И сказали, что глупый у меня вариант решения задачи..
Название: Как правильно удалить дочерний объект?
Отправлено: Макс от 26 Апреля 2005, 01:30:40
так пусть они обоснуют "глупость".
Серьезных глупостей не вижу, хотя все-таки лучше в функцию удаления передавать не текущий объект, а  ID строки, которую надо удалить :

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

(код не проверял)
Название: Как правильно удалить дочерний объект?
Отправлено: 4m@t!c от 26 Апреля 2005, 10:38:49
Цитировать
Серьезных глупостей не вижу, хотя все-таки лучше в функцию удаления передавать не текущий объект, а ID строки, которую надо удалить :

Т.е. с логикой все нормально, а огрех в реализации только в том, что я передаю не ID строки, а объект?
Название: Как правильно удалить дочерний объект?
Отправлено: Макс от 26 Апреля 2005, 11:52:52
Цитировать
4m@t!c:
а огрех в реализации только в том, что я передаю не ID строки, а объект

огрехом это называть не буду, просто считаю мой подход более удобным.
Логика ИМХО верная.
Спросил бы сам, что за глупость они нашли. ИМХО оставлять скрытые строки - тоже не лучший вариант
Название: Как правильно удалить дочерний объект?
Отправлено: 4m@t!c от 26 Апреля 2005, 11:57:34
Глупость в том, что я смещаю строки, в цикле переписывая содержимое полей ввода.