Изменить класс родителя при 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" >  | 
	
		
 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>
 | 
	
		
 Да нетушки) Так я можем) Все дело в том, что Дивов с классом - .bx_filter_container много и в каждом свои инпуты. Пример: 
	див сласс .bx_filter_container инпут с чекбоксом инпут с чекбоксом инпут с чекбоксом конец дива див сласс .bx_filter_container инпут с чекбоксом инпут с чекбоксом инпут с чекбоксом конец дива див сласс .bx_filter_container инпут с чекбоксом инпут с чекбоксом инпут с чекбоксом конец дива А так как Вы предложили меняет только первый сласс...  | 
	
		
 Точнее этот вариант все классы меняет, а нужно только родителя в котором нажат чек... 
	 | 
	
		
 Цитата: 
	
  | 
	
		
 Ребята, помогите пожалуйста. Нужно добавлять или менять класс родителя, у которого в инпут нажат чесбокс. 
	 | 
	
		
 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>
 | 
	
		
 Deff, 
	если 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){  //перебор всех контейнеров
        $(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>
 | 
	
		
 Цитата: 
	
 Кстать, можно на ты, вродь давно друг-друга знаем. Как вариант: добавление к атрибуту родительского див(к примеру data) +1 или -1 в зависимости от состояния текущего чекбокса при change, - далее смотреть что data>0; тогда each не нужен  | 
	
		
 Огромное спасибо! Отличный пример! Мне очень хотелось логику понять. А то я уже пробовал вычислить контейнер при фокусе и получалось черти что) 
	 | 
	
		
 Цитата: 
	
 
$(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");
			});
		});
А как вставить проверку не приложу ума. То есть после перезагрузки нужно проверить инпуты и те что нажаты добавить класс - orange. У меня не получается из за того, что обращаться нужно через родителя... Подскажите пожалуйста... Как то так думаю? 
$(function() {
		if ($(".css-checkbox").attr('checked') == 'checked') {
			а тут как то добавить класс
		}
	});
 | 
	
		
 chelkaz, 
	не судьба строку 5 продублировать в строке 7  | 
	
		
 Гм) Я пробовал так - но походу недоглядел...  
	
$(function(){
		var s = $(".bx_filter_container");
		s.each(function(indx, el){
			$(el)[($(el).has(":checked").length ? "add" : "remove")+"Class"]("orange");
		});
	});
 Все работает точно) Спасибо! | 
	
		
 chelkaz, 
	
$(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");
      });
         $(el)[($(el).has(":checked").length ? "add" : "remove")+"Class"]("orange");
      });
});
 | 
| Часовой пояс GMT +3, время: 15:41. |