Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Дерево с чекбоксами (https://javascript.ru/forum/dom-window/4459-derevo-s-chekboksami.html)

ilshat 23.07.2009 14:57

Дерево с чекбоксами
 
Здраствуйте господа.

Не подскажите пример скрипта/статью/информацию реализации дерева с чекбоксами на javascript. Проблем с деревом нет. С чекбоксами собственно тоже.
Интересует алгоритм клика на родительском чекбоксе при котором все дочерние чекбоксы принимают состояние родительского.

Дерево может быть каким угодно, с любым уровнем вложенности.

Интуитивно понимаю как это сделать, но вот на практике затрудняюсь реализовать.

Буду рад любой информации и различным примерам. Но без использования фреймворков наподобия dhtmlxTree или jQuery

Kolyaj 23.07.2009 15:03

Цитата:

Сообщение от ilshat
Интересует алгоритм клика на родительском чекбоксе при котором все дочерние чекбоксы принимают состояние родительского.

Алгоритм такой: при клике на родительском чекбоксе все его дочерние чекбоксы принимают то же состояние, что и он.

З.Ы. В чем проблема-то?

ilshat 23.07.2009 15:06

Проблема в реализации. Как найти эти самые дочерние чекбоксы которые относятся именно к этому родителю.

B~Vladi 23.07.2009 15:18

Решений пачка... Пройтись по DOM... Получать их по именам (тогда нужно будет знать, какие имена выбирать, что тоже легко реализуемо).

ilshat 23.07.2009 15:25

Я тоже так думал.
И собственно так оно и есть. Но нашел решения только на фреймворках или на других языках.

Вот и обратился за информацией сюда.

Теория ясна до безобразия, а техническая реализация не очень.

Kolyaj 23.07.2009 15:37

Дерево - это вложенные списки (ol/ul). При такой реализации очень легко найти вложенные чекбоксы.

ilshat 23.07.2009 15:57

У меня дерево построено на таблицах. Но не суть важно.

Постараюсь конкретезировать вопрос.
Какими операторами можно обойти все чекбоксы заложенные в <table></table> или <div></div>

B~Vladi 23.07.2009 15:57

Дерево - это список списков:)
Цитата:

Сообщение от ilshat
У меня дерево построено на таблицах

Переделай.

ilshat 23.07.2009 16:04

Цитата:

Сообщение от B~Vladi (Сообщение 25175)
Дерево - это список списков:)

Переделай.

Слишком много кода уже завязано на этих деревьях.

ilshat 23.07.2009 16:17

Все. Нашел на этом сайте.
<div id="d1">
  <ol id="ol1">
    <li id="li1">1</li>
    <li id="li2">2</li>
  </ol>
</div>

код
var div = document.getElementById('d1')
var elems = div.getElementsByTagName('*')
 
for(var i=0; i<elems.length; i++) alert(elems[i].id)


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