Дерево с чекбоксами
Здраствуйте господа.
Не подскажите пример скрипта/статью/информацию реализации дерева с чекбоксами на javascript. Проблем с деревом нет. С чекбоксами собственно тоже. Интересует алгоритм клика на родительском чекбоксе при котором все дочерние чекбоксы принимают состояние родительского. Дерево может быть каким угодно, с любым уровнем вложенности. Интуитивно понимаю как это сделать, но вот на практике затрудняюсь реализовать. Буду рад любой информации и различным примерам. Но без использования фреймворков наподобия dhtmlxTree или jQuery |
Цитата:
З.Ы. В чем проблема-то? |
Проблема в реализации. Как найти эти самые дочерние чекбоксы которые относятся именно к этому родителю.
|
Решений пачка... Пройтись по DOM... Получать их по именам (тогда нужно будет знать, какие имена выбирать, что тоже легко реализуемо).
|
Я тоже так думал.
И собственно так оно и есть. Но нашел решения только на фреймворках или на других языках. Вот и обратился за информацией сюда. Теория ясна до безобразия, а техническая реализация не очень. |
Дерево - это вложенные списки (ol/ul). При такой реализации очень легко найти вложенные чекбоксы.
|
У меня дерево построено на таблицах. Но не суть важно.
Постараюсь конкретезировать вопрос. Какими операторами можно обойти все чекбоксы заложенные в <table></table> или <div></div> |
Дерево - это список списков:)
Цитата:
|
Цитата:
|
Все. Нашел на этом сайте.
<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) |
Цитата:
|
Цитата:
А на счет имен. Я не смог бы вычислять имя чекбокса потому что если имя родительского было бы id=checkb1 то имена детей были id=checkb1_checkb3 id=checkb1_checkb12 id=checkb1_checkb19 то есть имена предсказать было бы невозможно и пришлось бы засовывать их в массив. А разные имена соотвествуют id-шникам в базе которые не обязательно могут идти с шагом +1. |
имена могут быть и одинаковыми для своего набора.
|
Вы имеете в виду параметр name ?
И доступ осуществлять через name а не через id? |
именно. В форме будет хранится массив этих чекбоксов.
|
Спасибо. Мне это пригодится.
|
Часовой пояс GMT +3, время: 06:07. |