Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.02.2017, 19:02
Профессор
Отправить личное сообщение для imedia Посмотреть профиль Найти все сообщения от imedia
 
Регистрация: 20.05.2014
Сообщений: 292

Как проставить атрибут checked у дочерних элементов
Помогите пожалуйста !!!

Как при нажатии на первый чекбокс проставить чекбоксы всех вложенных элементов желательно методом click по вложенным чекбоксам, как это вообще правильно делается

<ul class="par parent0 level0 collapse in" aria-expanded="true">


    <label class="form-checkbox form-icon active">
         <input class="check" checked="checked" type="checkbox">
    </label>
   <li>
        <a>3D Графика</a>
        <ul class="collapse level1"><label class="form-checkbox form-icon">
         <input class="check" type="checkbox"></label>
         <li>
            <a>3D Анимация</a>
         </li> 
            <label class="form-checkbox   form-icon">
         <input class="check" type="checkbox"></label>
          <li>
           <a>3D Иллюстрация</a>
          </li> <label class="form-checkbox form-icon">
          <input class="check" type="checkbox"></label>
         <li>
        <a>3D Моделирование</a>
         </li> <label class="form-checkbox form-icon">
        <input class="check" type="checkbox"></label>
        <li>
         <a>3D Персонажи</a>
        </li> <label class="form-checkbox form-icon">
         <input class="check" type="checkbox"></label>
         <li>
          <a >3D Визуализация</a>
         </li>  
       </ul></li></ul>

$('.form-checkbox input[type=checkbox]').change(function(){
    var obj;
  if($(this).attr('checked','checked')){
      obj = ($(this).parent('.form-checkbox').parent('.level0').find('.active').find('ul').find('.form-checkbox').find('input[type=checkbox]'))
      $.each( obj, function( key, value ) {
       alert( key + ": " + value);
      });

     
  }

});

В jquery коде удивительно получаю алерт но не могу даже класс чекбокса просмотреть

Еще тут нужно учесть что lebel вокруг каждого чекбокса служит псевдоэлементом идолжен быть active

Последний раз редактировалось imedia, 04.02.2017 в 19:15.
Ответить с цитированием
  #2 (permalink)  
Старый 04.02.2017, 20:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Строка 3

if(this.checked){


строка 4

и строка 5

$.each($(this).closest('.par').find('input:checkbox'), function( key, value ) {

Последний раз редактировалось laimas, 04.02.2017 в 21:08.
Ответить с цитированием
  #3 (permalink)  
Старый 04.02.2017, 21:24
Профессор
Отправить личное сообщение для imedia Посмотреть профиль Найти все сообщения от imedia
 
Регистрация: 20.05.2014
Сообщений: 292

obj = ($(this).parent('.form-checkbox').parent('.level0').find('.active').find('ul').find('.form-checkbox').find('input[type=checkbox]'))
      $.each( obj, function( key, value ) {
         value.click()
      });

Вот этот код отлично отрабатывает но он привязан к ('.active') а это меняет чекбоксы во всех активных а надо только в текущем

Последний раз редактировалось imedia, 04.02.2017 в 21:40.
Ответить с цитированием
  #4 (permalink)  
Старый 04.02.2017, 21:30
Профессор
Отправить личное сообщение для imedia Посмотреть профиль Найти все сообщения от imedia
 
Регистрация: 20.05.2014
Сообщений: 292

..

Последний раз редактировалось imedia, 04.02.2017 в 21:39.
Ответить с цитированием
  #5 (permalink)  
Старый 04.02.2017, 21:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от imedia
и пошел перечислять все вложенные чекбоксы во всех категориях а не только в текущей
А что есть текущая, а что нет? Из приведенного куска html это можно понять? Если класс active ее определяет, то там всего один флажок и циклов не надо.

Сообщение от imedia
Кроме того не понятно как проставятся чекбоксы
Что значит проставятся?
Ответить с цитированием
  #6 (permalink)  
Старый 04.02.2017, 21:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

imedia,
Цитата:
Тег <ul> устанавливает маркированный список. Каждый элемент списка должен начинаться с тега <li>.
http://htmlbook.ru/html/ul
никаких label для дочерних элементов ul не придумали!!!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как убрать у одного checkbox checked и присвоить тому на который кликнула nina_ Элементы интерфейса 4 14.11.2016 13:27
Как к карусели прикрутить дополнительные переключатели элементов? ligisayan jQuery 3 04.08.2016 11:06
Как при обновлении страницы, сбросить атрибут disabled по умолчанию? Altai jQuery 6 17.04.2014 00:32
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Как прочитать список имён элементов в Cookie? Бобр Общие вопросы Javascript 6 09.02.2010 08:47