выделение чекбоксом родителя

danneo

Честный
Регистрация
13 Ноя 2007
Сообщения
1.526
Реакции
121
Есть древовидное меню (список названий категорий), с чекбоксами. Пока оно только визуально древовидное (CSS).
Нужно сделать так, чтобы при выделении списка из меню, выделялись все родители по цепочке в верх (только родители). Я так понимаю, для моей цели нужно вывести во вложенных ul...
Подскажите, пожалуйста.
Как нужно сформировать этот список? Какой код js (можно jquery)?
 
Последнее редактирование:
без разницы как ты оформишь, главное чтобы список был именно вложенным, а уж div или ul - пофиг. Чтобы получить родителя используй функция .parent()
 
без разницы как ты оформишь, главное чтобы список был именно вложенным, а уж div или ul - пофиг. Чтобы получить родителя используй функция .parent()
дак у <input type="checkbox" /> нет родителя...
 
Как вариант ты можешь каждому чек боксу прописать аттрибуте id родителя
а при клике, получать id и по нему находить родителя, выделять и получать уже у него id и опять искать его родителя и тд...

еще один вариант - перебирать.
они же у тебя хотя бы классами обозначены?


при клике получаешь индекс чекбокса в списке. В переменную запихиваешь класс текущего элемента. И перебираешь элементы с конца начинаю с этого элемента.
и сравниваешь классы если класс текущего такой же как и в переменно то идем дальше, если нет то это родитель - тогда записываем его класс в переменную и перебираем дальше...
 
Последнее редактирование модератором:
$("#block").parent()вернет родителя элемента с идентификатором block.
$("div").parent()вернет родительские элементы всех div-ов.
$("div").parent(".lBlock")вернет элементы класса lBlock, которые являются родительскими для div-элементов на странице.
 
Либо через дополнительный атрибут, как было сказано выше, например: <input type="checkbox" id="c20" rel="c19" /> и тогда:
Код:
var ch = this; //ссылка на checkbox
while(1){
var parent = $(ch).attr('rel');
if(!parent) break;
ch = $('#'+parent).attr('checked','checked');
}

Или через вложенные списки ul li и выделение родительских чекбоксов через $("div").parent().
 
Назад
Сверху