Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.07.2009, 14:57
Аспирант
Отправить личное сообщение для ilshat Посмотреть профиль Найти все сообщения от ilshat
 
Регистрация: 28.07.2008
Сообщений: 67

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

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

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

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

Буду рад любой информации и различным примерам. Но без использования фреймворков наподобия dhtmlxTree или jQuery
Ответить с цитированием
  #2 (permalink)  
Старый 23.07.2009, 15:03
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

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

З.Ы. В чем проблема-то?
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2009, 15:06
Аспирант
Отправить личное сообщение для ilshat Посмотреть профиль Найти все сообщения от ilshat
 
Регистрация: 28.07.2008
Сообщений: 67

Проблема в реализации. Как найти эти самые дочерние чекбоксы которые относятся именно к этому родителю.
Ответить с цитированием
  #4 (permalink)  
Старый 23.07.2009, 15:18
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Решений пачка... Пройтись по DOM... Получать их по именам (тогда нужно будет знать, какие имена выбирать, что тоже легко реализуемо).
Ответить с цитированием
  #5 (permalink)  
Старый 23.07.2009, 15:25
Аспирант
Отправить личное сообщение для ilshat Посмотреть профиль Найти все сообщения от ilshat
 
Регистрация: 28.07.2008
Сообщений: 67

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

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

Теория ясна до безобразия, а техническая реализация не очень.
Ответить с цитированием
  #6 (permalink)  
Старый 23.07.2009, 15:37
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Дерево - это вложенные списки (ol/ul). При такой реализации очень легко найти вложенные чекбоксы.
Ответить с цитированием
  #7 (permalink)  
Старый 23.07.2009, 15:57
Аспирант
Отправить личное сообщение для ilshat Посмотреть профиль Найти все сообщения от ilshat
 
Регистрация: 28.07.2008
Сообщений: 67

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

Постараюсь конкретезировать вопрос.
Какими операторами можно обойти все чекбоксы заложенные в <table></table> или <div></div>
Ответить с цитированием
  #8 (permalink)  
Старый 23.07.2009, 15:57
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Дерево - это список списков
Сообщение от ilshat
У меня дерево построено на таблицах
Переделай.
Ответить с цитированием
  #9 (permalink)  
Старый 23.07.2009, 16:04
Аспирант
Отправить личное сообщение для ilshat Посмотреть профиль Найти все сообщения от ilshat
 
Регистрация: 28.07.2008
Сообщений: 67

Сообщение от B~Vladi Посмотреть сообщение
Дерево - это список списков

Переделай.
Слишком много кода уже завязано на этих деревьях.
Ответить с цитированием
  #10 (permalink)  
Старый 23.07.2009, 16:17
Аспирант
Отправить личное сообщение для ilshat Посмотреть профиль Найти все сообщения от ilshat
 
Регистрация: 28.07.2008
Сообщений: 67

Все. Нашел на этом сайте.
<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)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск