Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.01.2015, 09:44
Интересующийся
Отправить личное сообщение для chelkaz Посмотреть профиль Найти все сообщения от chelkaz
 
Регистрация: 02.01.2014
Сообщений: 26

Изменить класс родителя при input checkbox
Добрый день. Как мне изменить клвсс родителя если нажали чек на инпуте? При условии, что имена и айди у всех инпутов разные. Вот пример:

<div class="bx_filter_container"> [B]/* Этот сласс нужно изменить если нажат checkbox */[/B]
<span class="bx_filter_container_title">
<span class="bx_filter_container_modef">
<div id="modef" class="blblblb>
<div id="id-2" class="panel-collapse collapse in" style="" aria-expanded="true">
<div class="panel-body">
<span class="">
<input id="arrFilter_1_2212294583"
   class="css-checkbox"
   type="checkbox"
   onclick="smartFilter.click(this)"
   name="arrFilter_1_2212294583"
   value="Y"
>
Ответить с цитированием
  #2 (permalink)  
Старый 07.01.2015, 10:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

chelkaz,
вариант для сласстёны ...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .orange {
    background: #FFCC00;
  }
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
    var s = $(".bx_filter_container");
       $(":checkbox", s).change(function() {
                  s.toggleClass("orange", this.checked);
      });});


  </script>
</head>

<body>
<div class="bx_filter_container"> [B]/* Этот сласс нужно изменить если нажат checkbox */[/B]
<span class="bx_filter_container_title">
<span class="bx_filter_container_modef">
<div id="modef" class="blblblb">
<div id="id-2" class="panel-collapse collapse in" style="" aria-expanded="true">
<div class="panel-body">
<span class="">
<input id="arrFilter_1_2212294583"
   class="css-checkbox"
   type="checkbox"
   onclick="smartFilter.click(this)"
   name="arrFilter_1_2212294583"
   value="Y"
>
</span></div></div></div></span></span></div>
</body>

</html>

Последний раз редактировалось рони, 07.01.2015 в 10:09.
Ответить с цитированием
  #3 (permalink)  
Старый 07.01.2015, 10:39
Интересующийся
Отправить личное сообщение для chelkaz Посмотреть профиль Найти все сообщения от chelkaz
 
Регистрация: 02.01.2014
Сообщений: 26

Да нетушки) Так я можем) Все дело в том, что Дивов с классом - .bx_filter_container много и в каждом свои инпуты. Пример:
див сласс .bx_filter_container
инпут с чекбоксом
инпут с чекбоксом
инпут с чекбоксом
конец дива

див сласс .bx_filter_container
инпут с чекбоксом
инпут с чекбоксом
инпут с чекбоксом
конец дива

див сласс .bx_filter_container
инпут с чекбоксом
инпут с чекбоксом
инпут с чекбоксом
конец дива

А так как Вы предложили меняет только первый сласс...
Ответить с цитированием
  #4 (permalink)  
Старый 07.01.2015, 10:44
Интересующийся
Отправить личное сообщение для chelkaz Посмотреть профиль Найти все сообщения от chelkaz
 
Регистрация: 02.01.2014
Сообщений: 26

Точнее этот вариант все классы меняет, а нужно только родителя в котором нажат чек...
Ответить с цитированием
  #5 (permalink)  
Старый 07.01.2015, 10:44
Интересующийся
Отправить личное сообщение для chelkaz Посмотреть профиль Найти все сообщения от chelkaz
 
Регистрация: 02.01.2014
Сообщений: 26

Сообщение от рони Посмотреть сообщение
chelkaz,
вариант для сласстёны ...
Так меняет для всех классов...
Ответить с цитированием
  #6 (permalink)  
Старый 07.01.2015, 11:02
Интересующийся
Отправить личное сообщение для chelkaz Посмотреть профиль Найти все сообщения от chelkaz
 
Регистрация: 02.01.2014
Сообщений: 26

Ребята, помогите пожалуйста. Нужно добавлять или менять класс родителя, у которого в инпут нажат чесбокс.
Ответить с цитированием
  #7 (permalink)  
Старый 07.01.2015, 11:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

chelkaz, смена класса если выбран хотябы один checkbox

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .orange {
    background: #FFCC00;
  }
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
       var s = $(".bx_filter_container");
       s.each(function(indx, el){
        $(":checkbox", el).click(function(event) {
        $(el)[($(el).has(":checked").length ? "add" : "remove")+"Class"]("orange");
      });

      });


});


  </script>
</head>

<body>
<div class="bx_filter_container"> [B]/* Этот сласс нужно изменить если нажат checkbox */[/B]
<span class="bx_filter_container_title">
<span class="bx_filter_container_modef">
<div id="modef" class="blblblb">
<div id="id-2" class="panel-collapse collapse in" style="" aria-expanded="true">
<div class="panel-body">
<span class="">
<input id="arrFilter_1_2212294583"
   class="css-checkbox"
   type="checkbox"
   onclick="smartFilter.click(this)"
   name="arrFilter_1_2212294583"
   value="Y"
> <input id="arrFilter_1_2212294583"
   class="css-checkbox"
   type="checkbox"
   onclick="smartFilter.click(this)"
   name="arrFilter_1_2212294583"
   value="Y"
> <input id="arrFilter_1_2212294583"
   class="css-checkbox"
   type="checkbox"
   onclick="smartFilter.click(this)"
   name="arrFilter_1_2212294583"
   value="Y"
>
</span></div></div></div></span></span></div>
<div class="bx_filter_container"> [B]/* Этот сласс нужно изменить если нажат checkbox */[/B]
<span class="bx_filter_container_title">
<span class="bx_filter_container_modef">
<div id="modef" class="blblblb">
<div id="id-2" class="panel-collapse collapse in" style="" aria-expanded="true">
<div class="panel-body">
<span class="">
<input id="arrFilter_1_2212294583"
   class="css-checkbox"
   type="checkbox"
   onclick="smartFilter.click(this)"
   name="arrFilter_1_2212294583"
   value="Y"
> <input id="arrFilter_1_2212294583"
   class="css-checkbox"
   type="checkbox"
   onclick="smartFilter.click(this)"
   name="arrFilter_1_2212294583"
   value="Y"
>  <input id="arrFilter_1_2212294583"
   class="css-checkbox"
   type="checkbox"
   onclick="smartFilter.click(this)"
   name="arrFilter_1_2212294583"
   value="Y"
>
</span></div></div></div></span></span></div>
</body>

</html>
Ответить с цитированием
  #8 (permalink)  
Старый 07.01.2015, 11:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Deff,
если checkbox много ваш код выдаст неверный результат
Ответить с цитированием
  #9 (permalink)  
Старый 07.01.2015, 11:47
Интересующийся
Отправить личное сообщение для chelkaz Посмотреть профиль Найти все сообщения от chelkaz
 
Регистрация: 02.01.2014
Сообщений: 26

Сообщение от рони Посмотреть сообщение
chelkaz, смена класса если выбран хотябы один checkbox
Большое спасибо! Вы можете если не трудно прокомментировать логику, этого решения. Оно прекрасно работает. А если например нужно изменить другой элемент у блока. Могли ьы Вы написать жтот же код с комментарием пожалуйста.
Ответить с цитированием
  #10 (permalink)  
Старый 07.01.2015, 11:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от chelkaz
А если например нужно изменить другой элемент у блока
например?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .orange {
    background: #FFCC00;
  }
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
       var s = $(".bx_filter_container");
       s.each(function(indx, el){  //перебор всех контейнеров
        $(el).on("change",":checkbox",function(event) { //установка слежения за checkbox внутри контейнера
        $(*!*"p",*/!*el)[($(el).has(":checked").length ? "add" : "remove")+"Class"]("orange");
        //смена класса элемента внутри контейнера(подчёркнутое убрать, тогда самого контейнера)
        // в зависимости  от наличия  (":checked").length
      });

      });


});


  </script>
</head>

<body>
<div class="bx_filter_container"> [B]/* Этот сласс нужно изменить если нажат checkbox */[/B]
<span class="bx_filter_container_title">
<span class="bx_filter_container_modef">
<div id="modef" class="blblblb">
<div id="id-2" class="panel-collapse collapse in" style="" aria-expanded="true">
<div class="panel-body">
<span class=""><p>test</p>
<input id="arrFilter_1_2212294583"
   class="css-checkbox"
   type="checkbox"
   onclick="smartFilter.click(this)"
   name="arrFilter_1_2212294583"
   value="Y"
> <input id="arrFilter_1_2212294583"
   class="css-checkbox"
   type="checkbox"
   onclick="smartFilter.click(this)"
   name="arrFilter_1_2212294583"
   value="Y"
> <input id="arrFilter_1_2212294583"
   class="css-checkbox"
   type="checkbox"
   onclick="smartFilter.click(this)"
   name="arrFilter_1_2212294583"
   value="Y"
>
</span></div></div></div></span></span></div>
<div class="bx_filter_container"> [B]/* Этот сласс нужно изменить если нажат checkbox */[/B]
<span class="bx_filter_container_title">
<span class="bx_filter_container_modef">
<div id="modef" class="blblblb">
<div id="id-2" class="panel-collapse collapse in" style="" aria-expanded="true">
<div class="panel-body">
<span class=""><p>test</p>
<input id="arrFilter_1_2212294583"
   class="css-checkbox"
   type="checkbox"
   onclick="smartFilter.click(this)"
   name="arrFilter_1_2212294583"
   value="Y"
> <input id="arrFilter_1_2212294583"
   class="css-checkbox"
   type="checkbox"
   onclick="smartFilter.click(this)"
   name="arrFilter_1_2212294583"
   value="Y"
>  <input id="arrFilter_1_2212294583"
   class="css-checkbox"
   type="checkbox"
   onclick="smartFilter.click(this)"
   name="arrFilter_1_2212294583"
   value="Y"
>
</span></div></div></div></span></span></div>
</body>

</html>

Последний раз редактировалось рони, 07.01.2015 в 12:31.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установить checkbox при нажатии на input SLameN Элементы интерфейса 5 21.03.2014 10:10
Скрипт при нахождение элемента добавляется класс, анимация Wahlberg Angular.js 0 02.02.2014 02:44
Проверка статуса checkbox при xmlhttprequest vvsh AJAX и COMET 3 06.08.2009 15:51
Как изменить текст при наведении курсора? sewernik Элементы интерфейса 2 13.04.2009 19:31
Выделение checkbox при условии атрибута... SashaBorandi jQuery 1 07.02.2009 14:18