 
			
				17.03.2015, 15:16
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.03.2010 
					
					
					
						Сообщений: 38
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Сложности с селекторами
			 
			
		
		
		
		Добрый день! 
Есть код 
 
<ul class="ul-tree ul-drop" id="lasttree" style="display:block">
	<li><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<input type="checkbox" id="checkbox1"/></p>
		<ul>
			<li><p>Aenean commodo ligula eget dolor.<input type="checkbox" id="checkbox1"/></p></li>
			<li><p>Aenean massa.<input type="checkbox" id="checkbox1"/></p>
				<ul>
					<li><p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Nulla consequat massa quis enim.<input type="checkbox" id="checkbox1"/></p></li>
				</ul>
			</li>
		</ul>
	</li>
	<li><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<input type="checkbox" id="checkbox1"/></p>
		<ul>
			<li><p>Aenean commodo ligula eget dolor.<input type="checkbox" id="checkbox1"/></p></li>
			<li><p>Aenean massa.<input type="checkbox" id="checkbox1"/></p>
				<ul>
					<li><p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Nulla consequat massa quis enim.<input type="checkbox" id="checkbox1"/></p></li>
				</ul>
			</li>
		</ul>
	</li>
	<li><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<input type="checkbox" id="checkbox1"/></p>
		<ul>
			<li><p>Aenean commodo ligula eget dolor.<input type="checkbox" id="checkbox1"/></p></li>
			<li><p>Aenean massa.<input type="checkbox" id="checkbox1"/></p>
				<ul>
					<li><p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Nulla consequat massa quis enim.<input type="checkbox" id="checkbox1"/></p></li>
				</ul>
			</li>
		</ul>
	</li>
	
<li><p>Duis leo.<input type="checkbox" id="checkbox1"/></p></li>
</ul>
<div> <button id="button-del">Удалить выбранные элементы</button>
 
Пытаюсь удалить выделенные чекбоксами ветки с помощью 
 
//Удаление отмеченных чекбоксов
	$("#button-del").click(function(){
	
		 $('li:has(input:checked)').addClass('to-del');
		 
		 $('li.to-del').detach();
		
		
	});
Но он почему-то если выделен вложенный список, удаляет всю родительскую ветку. Как это можно исправить?
 
Удалять нужно только выделенные чекбоксом элементы списка.  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.03.2015, 15:31
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Zuko
			
		
	 | 
 
	| 
		Удалять нужно только выделенные чекбоксом элементы списка.
	 | 
 
	
 
 Так?
 
<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('#button-del').click(function(){
		$('#lasttree :checked').each(function(){
			var o=this.parentNode.parentNode;
			o.parentNode.removeChild(o);
		});
	});
});
</script>
</head>
<body>
<ul class="ul-tree ul-drop" id="lasttree" style="display:block">
	<li><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<input type="checkbox" id="checkbox1"/></p>
		<ul>
			<li><p>Aenean commodo ligula eget dolor.<input type="checkbox" id="checkbox1"/></p></li>
			<li><p>Aenean massa.<input type="checkbox" id="checkbox1"/></p>
				<ul>
					<li><p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Nulla consequat massa quis enim.<input type="checkbox" id="checkbox1"/></p></li>
				</ul>
			</li>
		</ul>
	</li>
	<li><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<input type="checkbox" id="checkbox1"/></p>
		<ul>
			<li><p>Aenean commodo ligula eget dolor.<input type="checkbox" id="checkbox1"/></p></li>
			<li><p>Aenean massa.<input type="checkbox" id="checkbox1"/></p>
				<ul>
					<li><p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Nulla consequat massa quis enim.<input type="checkbox" id="checkbox1"/></p></li>
				</ul>
			</li>
		</ul>
	</li>
	<li><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<input type="checkbox" id="checkbox1"/></p>
		<ul>
			<li><p>Aenean commodo ligula eget dolor.<input type="checkbox" id="checkbox1"/></p></li>
			<li><p>Aenean massa.<input type="checkbox" id="checkbox1"/></p>
				<ul>
					<li><p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Nulla consequat massa quis enim.<input type="checkbox" id="checkbox1"/></p></li>
				</ul>
			</li>
		</ul>
	</li>
	<li><p>Duis leo.<input type="checkbox" id="checkbox1"/></p></li>
</ul>
<button id="button-del">Удалить выбранные элементы</button>
</body>
</html>
 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.03.2015, 15:39
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.03.2010 
					
					
					
						Сообщений: 38
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Ksa 
Спасибо!
 
А теперь можешь хотя бы примерно объяснить нубу как это работает? 
 
$('#lasttree :checked').each(function(){
            var o=this.parentNode.parentNode;
            o.parentNode.removeChild(o);
        });
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.03.2015, 15:41
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.03.2010 
					
					
					
						Сообщений: 38
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 И может быть ещё подскажешь, как сделать так, чтобы при выделении родительского чекбокса автоматически выделялись все вложенные? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.03.2015, 15:52
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Zuko
			
		
	 | 
 
	| 
		А теперь можешь хотя бы примерно объяснить нубу как это работает?
	 | 
 
	
 
 
$('#lasttree :checked')
Выбрал все дочерние отмеченные чеки элемента с ИД=lasttree...
 
each(function(){/**/})
Запустил цикл по выбранным элементам
 
var o=this.parentNode.parentNode;
 
Вычислил элемент для удаления
 
o.parentNode.removeChild(o);
 
Удалил его.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.03.2015, 16:06
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.03.2010 
					
					
					
						Сообщений: 38
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от ksa
			 
		
	 | 
 
	
		
$('#lasttree :checked')
 
Выбрал все дочерние отмеченные чеки элемента с ИД=lasttree... 
each(function(){/**/})
 
Запустил цикл по выбранным элементам 
var o=this.parentNode.parentNode;
  
Вычислил элемент для удаления 
o.parentNode.removeChild(o);
  
Удалил его.
	 | 
 
	
 
 Благодарю!)
 
И может быть ещё подскажешь, как сделать так, чтобы при выделении родительского чекбокса автоматически выделялись все вложенные?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.03.2015, 16:09
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от ksa
			
		
	 | 
 
	
		var o=this.parentNode.parentNode; 
            o.parentNode.removeChild(o);
	 | 
 
	
 
 Ну зачем же так писать, когда под рукой jquery?
 
$(this).closest('li').remove().
 
Так ниче не накроется если верстальщик обернет все в <div> допустим.  
		
	
		
		
		
		
		
			
				__________________ 
				В личку только с интересными предложениями   
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.03.2015, 16:27
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Zuko
			
		
	 | 
 
	| 
		как сделать так, чтобы при выделении родительского чекбокса автоматически выделялись все вложенные?
	 | 
 
	
 
 Например так...
 
<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('#button-del').click(function(){
		$('#lasttree :checked').each(function(){
			var o=this.parentNode.parentNode;
			o.parentNode.removeChild(o);
		});
	});
	$(':checkbox').click(function(){
		$(this.parentNode.parentNode).find(':checkbox').prop('checked',this.checked);
		var oli=$('li');
		for (var i=oli.length; i>0; i--) {
			var o=oli.eq(i-1);
			var n=o.find('ul > li :checkbox').length;
			if (n>0) {
				var ok=o.find('ul > li :checked').length;
				o.children('p').find(':checkbox').prop('checked',n==ok);
			};
		};
	})
});
</script>
</head>
<body>
<ul class="ul-tree ul-drop" id="lasttree" style="display:block">
	<li><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<input type="checkbox" id="checkbox1"/></p>
		<ul>
			<li><p>Aenean commodo ligula eget dolor.<input type="checkbox" id="checkbox1"/></p></li>
			<li><p>Aenean massa.<input type="checkbox" id="checkbox1"/></p>
				<ul>
					<li><p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Nulla consequat massa quis enim.<input type="checkbox" id="checkbox1"/></p></li>
				</ul>
			</li>
		</ul>
	</li>
	<li><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<input type="checkbox" id="checkbox1"/></p>
		<ul>
			<li><p>Aenean commodo ligula eget dolor.<input type="checkbox" id="checkbox1"/></p></li>
			<li><p>Aenean massa.<input type="checkbox" id="checkbox1"/></p>
				<ul>
					<li><p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Nulla consequat massa quis enim.<input type="checkbox" id="checkbox1"/></p></li>
				</ul>
			</li>
		</ul>
	</li>
	<li><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<input type="checkbox" id="checkbox1"/></p>
		<ul>
			<li><p>Aenean commodo ligula eget dolor.<input type="checkbox" id="checkbox1"/></p></li>
			<li><p>Aenean massa.<input type="checkbox" id="checkbox1"/></p>
				<ul>
					<li><p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Nulla consequat massa quis enim.<input type="checkbox" id="checkbox1"/></p></li>
				</ul>
			</li>
		</ul>
	</li>
	<li><p>Duis leo.<input type="checkbox" id="checkbox1"/></p></li>
</ul>
<button id="button-del">Удалить выбранные элементы</button>
</body>
</html>
 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.03.2015, 18:02
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.03.2010 
					
					
					
						Сообщений: 38
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от ksa
			 
		
	 | 
 
	| 
		Например так...
	 | 
 
	
 
 Спасибо
 
А можно ли сделать так, чтобы сверху вниз по вложенности только выделялось? 
 
Например, если родительский список состоит из 2х, а они двое сами по себе выделены - он не выделялся. 
 
А то у меня просто дерево каталогов на основе списка будет    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.03.2015, 20:15
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Zuko
			
		
	 | 
 
	| 
		А можно ли сделать так, чтобы сверху вниз по вложенности только выделялось?
	 | 
 
	
 
 Разумеется.    
<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('#button-del').click(function(){
		$('#lasttree :checked').each(function(){
			var o=this.parentNode.parentNode;
			o.parentNode.removeChild(o);
		});
	});
	$(':checkbox').click(function(){
		$(this.parentNode.parentNode).find(':checkbox').prop('checked',this.checked);
/*
		var oli=$('li');
		for (var i=oli.length; i>0; i--) {
			var o=oli.eq(i-1);
			var n=o.find('ul > li :checkbox').length;
			if (n>0) {
				var ok=o.find('ul > li :checked').length;
				o.children('p').find(':checkbox').prop('checked',n==ok);
			};
		};
*/
	})
});
</script>
</head>
<body>
<ul class="ul-tree ul-drop" id="lasttree" style="display:block">
	<li><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<input type="checkbox" id="checkbox1"/></p>
		<ul>
			<li><p>Aenean commodo ligula eget dolor.<input type="checkbox" id="checkbox1"/></p></li>
			<li><p>Aenean massa.<input type="checkbox" id="checkbox1"/></p>
				<ul>
					<li><p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Nulla consequat massa quis enim.<input type="checkbox" id="checkbox1"/></p></li>
				</ul>
			</li>
		</ul>
	</li>
	<li><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<input type="checkbox" id="checkbox1"/></p>
		<ul>
			<li><p>Aenean commodo ligula eget dolor.<input type="checkbox" id="checkbox1"/></p></li>
			<li><p>Aenean massa.<input type="checkbox" id="checkbox1"/></p>
				<ul>
					<li><p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Nulla consequat massa quis enim.<input type="checkbox" id="checkbox1"/></p></li>
				</ul>
			</li>
		</ul>
	</li>
	<li><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<input type="checkbox" id="checkbox1"/></p>
		<ul>
			<li><p>Aenean commodo ligula eget dolor.<input type="checkbox" id="checkbox1"/></p></li>
			<li><p>Aenean massa.<input type="checkbox" id="checkbox1"/></p>
				<ul>
					<li><p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.<input type="checkbox" id="checkbox1"/></p></li>
					<li><p>Nulla consequat massa quis enim.<input type="checkbox" id="checkbox1"/></p></li>
				</ul>
			</li>
		</ul>
	</li>
	<li><p>Duis leo.<input type="checkbox" id="checkbox1"/></p></li>
</ul>
<button id="button-del">Удалить выбранные элементы</button>
</body>
</html>
 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |