日期:2014-05-16  浏览次数:20434 次

百分请教TreeView+Checkbox的问题。
无限级树型菜单已经实现。现需在每个结点前面加上一个checkbox
想实现的效果是:
1.选中叶子结点,与其相关的父结点的checkbox全部自动选中。
2.选中非叶子结点,与其相关的所有子结点的checkbox全部自动选中。
3.取得所选中的结点的完整路径。
    例如   类别1/类别1.1/类别1.1.1/结点1.1.1-1
              类别2/类别2.1/类别2.1.1/结点2.1.1-1

所有结点的数据结构是   [类别号,父类号,类别名称,其它]
checkbox的值是   类别号

目前的困扰是:不知该如何实现:如果能递归的找到   叶子结点的所属的所有父结点或父结点所属的所有子结点。

请大侠们讲讲思路。不胜感激,百分感谢~!!


------解决方案--------------------
春节长假综合症。。。
var a=new Array();
function findCheckBox(el)
{
if(el.childNodes!=null)
{
for(var i=0;i <el.childNodes.length;i++)
{
if(el.childNodes[i].tagName!=null&&el.childNodes[i].tagName.toLowerCase()== "div ")
a.push(el.childNodes[i]);

findCheckBox(el.childNodes[i]);
}
}
else{if(el.childNodes[i].tagName== "div ")a.push(el)};
}
//--------------------------------------------
<div id= "pNode "> 第一级
<div> 地二级
<div> 第三纪 </div>
</div>
<div> 地二级
</div>
</div>
<input type= "button " onClick= "findCheckBox(pNode) ">
<input type= "button " onClick= "alert(a.length) ">
zzzzzzzZzzzzzzzzzZzzzzzz。。。。。以上,取得pNode根节点的所有子节点。。。
你要是想用叶子节点来选择根节点。。。一路parentNode上去好了。。
------解决方案--------------------
http://blog.csdn.net/xuStanly/archive/2006/09/11/1207222.aspx

改自梅老大的树,供参考。
或者下载梅老大的新版树。