Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Динамический список не динамический. (https://javascript.ru/forum/dom-window/56008-dinamicheskijj-spisok-ne-dinamicheskijj.html)

Sigizmund2012 27.05.2015 17:43

Цитата:

Сообщение от рони (Сообщение 372452)
kostyanet,
вечно ты выдумываешь коня в вакуме, когда есть решение для одного обьекта, решить задачу с десятком можно без труда, распространив метод на нужные обьекты.

По-моему вы пользователю оказали медвежью услугу, у него проект коммерческий, а вы ему код написали с методом remove(), который не поддерживается Internet Explorer https://developer.mozilla.org/en-US/...ildNode/remove

рони 27.05.2015 18:09

Sigizmund2012,
если вас не затруднит проверьте

рони 27.05.2015 18:17

Sigizmund2012,
единственное ограничение в том коде querySelectorAll для ie ниже 8 , которое легко исправить
s = document.getElementsByTagName('select')

и код будет работать во всех версиях ie

kostyanet 27.05.2015 18:26

циферки только время от времени исправлять и будет работать во всех версиях. Ну то есть так закладывается правильные отношения с заказчиком. Вы ему хардкод - он вам пожизненный ангажемент циферки исправлять.

рони 27.05.2015 18:29

kostyanet,
видимо вы не программист если вам один метод сложно применить к массиву элементов и вы делаите отдельную функцию для каждого элемента

kostyanet 27.05.2015 18:47

Цитата:

Сообщение от рони
видимо вы не программист

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

рони 27.05.2015 18:50

kostyanet,
напишите свой вариант для вашего реляционного коня в вакууме.

kostyanet 28.05.2015 05:36

Кстати если потусоваться на sql.ru то увидите что таких программистов которые запростяк рушат все эти постулаты дофига и больше. Они воспринимают бд как обычный массив или объект, в котором по недоразумению забыли проиндексировать-пронумеровать все данные. Потом когда при ожидании получить одну - им вываливается несколько миллионов записей по условию != они жутко недоумевают.

Чтобы сделать интерактивные деревянные (tree) списки в хтмле, туда надо перенести отношения. Самое очевидное решение - в каждом дочернем элементе лежит атрибут указывающий на родителя. Тогда взяв родителя за уши можно вытрясти с него всех деток по тому же самому ключу или индексу, а чужих деток - стрясти.

Это если уровней как в примере - 2. Если больше, то приходится идти рекурсивно. Все давным давно отработано и известно. Изобретать тут вообще уже нечего.

kostyanet 28.05.2015 06:11

Стандартная таблица для дерева в парадигме adjacent list, то есть обычной "плоской" таблицы минимально состоит из отношений:

id
pid
name

В pid хранится значение родительского id. Нормально получить из бд дерево толком нельзя, или придется join'ить таблицу саму с собой столько раз, сколько там уровней, о числе которых надо знать заранее. Приходится загружать все, а скриптом уже превращать плоский список в деревянный. Получив дерево в массиве можно смотреть как его отрендерить в хтмл со всеми отношениями. Вот и все.

Sigizmund2012 28.05.2015 09:58

Цитата:

Сообщение от kostyanet (Сообщение 372727)
Ну разумеется я не программист, я - дизайнер.

:haha: Ну наконец-то всё встало на свои места. А я всё думал, как программист таким упоротым может быть? :D


Часовой пояс GMT +3, время: 03:52.