无限分级菜单 单击父类自动选择所有子类 并且统计子类的数量到父类

<ul>
  <li value="1">|---- AAAAA(0)
    <input type="checkbox" value="1" item="AAAAA(0)" parent_id="0" num="0" layer="1" name="documentCates[]">
  </li>
  <li value="4">|----|---- BBB(0)
    <input type="checkbox" value="4" item="BBB(0)" parent_id="1" num="0" layer="2" name="documentCates[]">
  </li>
  <li value="102">|----|----|---- CC(102)
    <input type="checkbox" value="102" checked="checked" item="CC(102)" parent_id="4" num="102" layer="3" name="documentCates[]">
  </li>
  <li value="103">|----|----|---- D(680)
    <input type="checkbox" value="103" item="D(680)" parent_id="4" num="680" layer="3" name="documentCates[]">
  </li>
</ul>


for(layer=3; layer>0; layer--){
		$("input[layer='"+layer+"'][num='0']").each(function(id, obj){
			var num = 0;
			$("input[parent_id='"+$(this).attr('value')+"']").each(function(childId, child){
				num += parseInt($(child).attr('num'));
			});
			$(this).attr({num:num, item:$(this).attr('item').replace(/\(0\)/, '('+num+')')});
			$(this).parent().html($(this).parent().html().replace(/\(0\)/, '('+num+')'));
		});
	}



$("input[name='documentCates[]']").click(function(){
		var checked = $(this).attr('checked') == 'checked';
		$("input[parent_id='"+$(this).attr('value')+"']").each(function(id_1, obj_1){
			$(obj_1).attr('checked', checked);
			$("input[parent_id='"+$(obj_1).attr('value')+"']").each(function(id_2, obj_2){
				$(obj_2).attr('checked', checked);
				$("input[parent_id='"+$(obj_2).attr('value')+"']").each(function(id_3, obj_3){
					$(obj_3).attr('checked', checked);
				});
			});
		});
	});



http://my.oschina.net/cart/



你可能感兴趣的:(无限分级菜单,并且统计子类的数量到父类,单击父类自动选择所有子类)