官方QQ群:127876820【C#编程技术-全国站--未满人】

CheckBox级联选择

以下是JS代码

Java代码 复制代码
  1. //判断所有的checkbox的选中状态   
  2. //@id : checkbox的id   
  3. function checkedStatus(id){   
  4.   
  5.     //获取checkbox   
  6.     var temp = document.getElementById(id);   
  7.        
  8.     //设置checkbox的下级checkbox的状态   
  9.     setChildCheckBox(temp);   
  10.   
  11.     //设置checkbox的上级checkbox的状态   
  12.     setParentCheckBox(temp);   
  13. }   
  14.   
  15. //获取checkbox的下级checkbox信息   
  16. //@entity : checkbox的DOM对象   
  17. function findChildCheckBox(entity){   
  18.   
  19.     //存放下级checkbox的数组   
  20.     var chkArray = new Array();   
  21.   
  22.     //判断是否有input标签   
  23.     if(document.getElementsByTagName("input")){   
  24.   
  25.         //获取所有的input标签   
  26.         var inputs = document.getElementsByTagName("input");   
  27.   
  28.         //遍历input标签,获取下级checkbox   
  29.         for(var i = 0; i < inputs.length; i++){   
  30.             var ele = inputs[i];   
  31.   
  32.             //判断type是“checkbox”,并且checkbox的parentId等于entity的id   
  33.             if(ele.type == "checkbox" && ele.parentId == entity.id){   
  34.                 chkArray.push(ele);   
  35.             }   
  36.         }   
  37.     }   
  38.     return chkArray;   
  39. }   
  40.   
  41. //获取checkbox的同级checkbox信息   
  42. //@entity : checkbox的DOM对象   
  43. function findBrotherCheckBox(entity){   
  44.   
  45.     //存放同级checkbox的数组   
  46.     var chkArray = new Array();   
  47.   
  48.     //判断是否有input标签   
  49.     if(document.getElementsByTagName("input")){   
  50.   
  51.         //获取所有的input标签   
  52.         var inputs = document.getElementsByTagName("input");   
  53.   
  54.         //遍历input标签,获取同级checkbox   
  55.         for(var i = 0; i < inputs.length; i++){   
  56.             var ele = inputs[i];   
  57.   
  58.             //判断type是“checkbox”,并且checkbox的parentId等于entity的parentId   
  59.             if(ele.type == "checkbox" && ele.parentId == entity.parentId){   
  60.                 chkArray.push(ele);   
  61.             }   
  62.         }   
  63.     }   
  64.     return chkArray;   
  65. }   
  66.   
  67. //获取checkbox的上级checkbox信息   
  68. //@entity : checkbox的DOM对象   
  69. function findParentCheckBox(entity){   
  70.   
  71.     //存放上级checkbox的对象   
  72.     var _element = null;   
  73.   
  74.     //判断是否有input标签   
  75.     if(document.getElementsByTagName("input")){   
  76.   
  77.         //获取所有的input标签   
  78.         var inputs = document.getElementsByTagName("input");   
  79.   
  80.         //遍历input标签,获取上级checkbox   
  81.         for(var i = 0; i < inputs.length; i++){   
  82.             var ele = inputs[i];   
  83.   
  84.             //判断type是“checkbox”,并且checkbox的id等于entity的parentId   
  85.             if(ele.type == "checkbox" && ele.id == entity.parentId){   
  86.                 _element = ele;   
  87.                 break;   
  88.             }   
  89.         }   
  90.     }   
  91.     return _element;   
  92. }   
  93.   
  94. //设置checkbox的下级checkbox的状态   
  95. //@entity : checkbox的DOM对象   
  96. function setChildCheckBox(entity){   
  97.   
  98.     //entity的选中状态   
  99.     var status = entity.checked;   
  100.   
  101.     //获取entity的下级checkbox   
  102.     var childList = findChildCheckBox(entity);   
  103.   
  104.     //判断是否有下级   
  105.     if(childList.length > 0){   
  106.   
  107.         //遍历下级checkbox,并设置状态   
  108.         for(var i = 0; i < childList.length; i++){   
  109.             childList[i].checked = status;   
  110.   
  111.             //设置childList[i]的下级checkbox的状态   
  112.             setChildCheckBox(childList[i]);   
  113.         }   
  114.     }   
  115. }   
  116.   
  117. //设置checkbox的上级checkbox的状态   
  118. //@entity : checkbox的DOM对象   
  119. function setParentCheckBox(entity){   
  120.   
  121.     //entity的上级checkbox的选中状态   
  122.     var parentChecked = true;   
  123.   
  124.     //获取entity的上级checkbox   
  125.     var parentCheckBox = findParentCheckBox(entity);   
  126.   
  127.     //判断是否有上级   
  128.     if(parentCheckBox){   
  129.   
  130.         //获取entity的同级checkbox   
  131.         var brotherList = findBrotherCheckBox(entity);   
  132.   
  133.         //判断是否有同级   
  134.         if(brotherList.length > 0){   
  135.                
  136.             //遍历同级checkbox   
  137.             for(var i = 0; i < brotherList.length; i++){   
  138.   
  139.                 //如果同级的checkbox有未选中的状态,则设置上级的checkbox的状态为false   
  140.                 if(brotherList[i].checked == false){   
  141.                     parentChecked = false;   
  142.                     break;   
  143.                 }   
  144.             }   
  145.         }   
  146.   
  147.         //设置上级checkbox的选中状态   
  148.         parentCheckBox.checked = parentChecked;   
  149.   
  150.         //设置parentCheckbox的上级checkbox的状态   
  151.         setParentCheckBox(parentCheckBox);   
  152.     }   
  153. }  
//判断所有的checkbox的选中状态//@id : checkbox的idfunction checkedStatus(id){//获取checkboxvar temp = document.getElementById(id);//设置checkbox的下级checkbox的状态setChildCheckBox(temp);//设置checkbox的上级checkbox的状态setParentCheckBox(temp);}//获取checkbox的下级checkbox信息//@entity : checkbox的DOM对象function findChildCheckBox(entity){//存放下级checkbox的数组var chkArray = new Array();//判断是否有input标签if(document.getElementsByTagName("input")){//获取所有的input标签var inputs = document.getElementsByTagName("input");//遍历input标签,获取下级checkboxfor(var i = 0; i < inputs.length; i++){var ele = inputs[i];//判断type是“checkbox”,并且checkbox的parentId等于entity的idif(ele.type == "checkbox" && ele.parentId == entity.id){chkArray.push(ele);}}}return chkArray;}//获取checkbox的同级checkbox信息//@entity : checkbox的DOM对象function findBrotherCheckBox(entity){//存放同级checkbox的数组var chkArray = new Array();//判断是否有input标签if(document.getElementsByTagName("input")){//获取所有的input标签var inputs = document.getElementsByTagName("input");//遍历input标签,获取同级checkboxfor(var i = 0; i < inputs.length; i++){var ele = inputs[i];//判断type是“checkbox”,并且checkbox的parentId等于entity的parentIdif(ele.type == "checkbox" && ele.parentId == entity.parentId){chkArray.push(ele);}}}return chkArray;}//获取checkbox的上级checkbox信息//@entity : checkbox的DOM对象function findParentCheckBox(entity){//存放上级checkbox的对象var _element = null;//判断是否有input标签if(document.getElementsByTagName("input")){//获取所有的input标签var inputs = document.getElementsByTagName("input");//遍历input标签,获取上级checkboxfor(var i = 0; i < inputs.length; i++){var ele = inputs[i];//判断type是“checkbox”,并且checkbox的id等于entity的parentIdif(ele.type == "checkbox" && ele.id == entity.parentId){_element = ele;break;}}}return _element;}//设置checkbox的下级checkbox的状态//@entity : checkbox的DOM对象function setChildCheckBox(entity){//entity的选中状态var status = entity.checked;//获取entity的下级checkboxvar childList = findChildCheckBox(entity);//判断是否有下级if(childList.length > 0){//遍历下级checkbox,并设置状态for(var i = 0; i < childList.length; i++){childList[i].checked = status;//设置childList[i]的下级checkbox的状态setChildCheckBox(childList[i]);}}}//设置checkbox的上级checkbox的状态//@entity : checkbox的DOM对象function setParentCheckBox(entity){//entity的上级checkbox的选中状态var parentChecked = true;//获取entity的上级checkboxvar parentCheckBox = findParentCheckBox(entity);//判断是否有上级if(parentCheckBox){//获取entity的同级checkboxvar brotherList = findBrotherCheckBox(entity);//判断是否有同级if(brotherList.length > 0){//遍历同级checkboxfor(var i = 0; i < brotherList.length; i++){//如果同级的checkbox有未选中的状态,则设置上级的checkbox的状态为falseif(brotherList[i].checked == false){parentChecked = false;break;}}}//设置上级checkbox的选中状态parentCheckBox.checked = parentChecked;//设置parentCheckbox的上级checkbox的状态setParentCheckBox(parentCheckBox);}}



 

posted @ 2010-10-11 13:16  碧海蓝天_C#  阅读(1358)  评论(0编辑  收藏  举报
官方QQ群:127876820【C#编程技术-全国站--未满人】