62,614
社区成员
发帖
与我相关
我的任务
分享
d.add(6337,6334,'<input type="checkbox" id="6337" name="6334" onclick="checkStatus(6337)"> 浏览','');
d.add(6244,6243,'<input type="checkbox" id="6244" name="6243" onclick="checkStatus(6244)"> 栏目信息管理','/admin/list/ColInfo.jsp?strDir=lists/gongzuodongtai/caiwushenji/cwxx/caikuaishujuchaxun/2009nian&rid=6243&name=2009年');
d.add(6245,6243,'<input type="checkbox" id="6245" name="6243" onclick="checkStatus(6245)"> 信息发布管理','/admin/list/PubManager.jsp?strDir=lists/gongzuodongtai/caiwushenji/cwxx/caikuaishujuchaxun/2009nian&rid=6243&name=2009年');
d.add(6246,6243,'<input type="checkbox" id="6246" name="6243" onclick="checkStatus(6246)"> 浏览','');
document.write(d);
/*
*选中no及其子节点
*nodeid:当前节点,parentId父节点
*/
function checkStatus(nodeId){
checkPar(nodeId);
try{
var nodes = document.getElementsByName(nodeId);//得到所有此节点的子节点
var ischeckd=document.getElementById(nodeId).checked;
for(var i=0,size=nodes.length;i <size;i++){
if(nodes[i].name == nodeId){//parentID为此nodeid就选中
nodes[i].checked = ischeckd;
checkStatus(nodes[i].id);
}
}
}catch(err){}
}
/*
*选中节点的父节点
*/
function checkPar(nodeId) {
try{
//当前节点
var node=document.getElementById(nodeId);
if(node.name == -1) {//根节点就停止
return;
}
var fatherNode = document.getElementById(node.name);
fatherNode.checked=node.checked;
checkPar(chkObject.id);
}catch(err){
alert(err);
}
}
</script>
性能不错,800多个节点比楼上的好多了。
<script type="text/javascript" >
dd = new dTree( 'dd ');
dd.add(0,-1, '省市列表 ', ' ');
dd.add(1,0, '<input type="checkbox" name="check" value="1" class="0" id="ch1" onClick="checkStatus(1,this)">辽宁 ');
dd.add(2,0, '<input type="checkbox" name="check" value="2" class="0" id="ch2" onClick="checkStatus(2,this)">湖北 ');
dd.add(3,0, '<input type="checkbox" name="check" value="3" class="0" id="ch3" onClick="checkStatus(3,this)">湖南 ');
dd.add(4,0, '<input type="checkbox" name="check" value="4" class="0" id="ch4" onClick="checkStatus(4,this)">江西 ');
dd.add(5,0, '<input type="checkbox" name="check" value="5" class="0" id="ch5" onClick="checkStatus(5,this)">浙江 ');
dd.add(6,5, '<input type="checkbox" name="check" value="6" class="5" id="ch6" onClick="checkStatus(6,this)">杭州 ');
dd.add(7,5, '<input type="checkbox" name="check" value="7" class="5" id="ch7" onClick="checkStatus(7,this)">嘉兴 ');
dd.add(8,4, '<input type="checkbox" name="check" value="8" class="4" id="ch8" onClick="checkStatus(8,this)">南昌 ');
dd.add(9,4, '<input type="checkbox" name="check" value="9" class="4" id="ch9" onClick="checkStatus(9,this)">九江 ');
dd.add(10,4, '<input type="checkbox" name="check" value="10" class="4" id="ch10" onClick="checkStatus(10,this)">樟树 ');
dd.add(11,10, '<input type="checkbox" name="check" value="11" class="10" id="ch11" onClick="checkStatus(11,this)">樟树 ');
dd.add(12,10, '<input type="checkbox" name="check" value="12" class="10" id="ch12" onClick="checkStatus(12,this)">樟树 ');
dd.add(13,12, '<input type="checkbox" name="check" value="13" class="12" id="ch13" onClick="checkStatus(13,this)">樟树 ');
dd.add(14,1, '<input type="checkbox" name="check" value="14" class="1" id="ch14" onClick="checkStatus(14,this)">樟树 ');
document.write(dd);
function checkStatus(no,chkBox){
checkPar(chkBox);//当子目录选中时,父目录也选中
var chks = document.getElementsByTagName('input');//得到所有input
for(var i=0;i <chks.length;i++){
if(chks[i].name.toLowerCase() == 'check'){//得到所名为check的input
if(chks[i].className == no){//ID等于传进父目录ID时
chks[i].checked = chkBox.checked;//保持选中状态和父目录一致
checkStatus(chks[i].value,chks[i]);//递归保持所有的子目录选中
}
}
}
}
function checkPar(chkBox) {
if(chkBox.name.toLowerCase() == 'check' && chkBox.checked && chkBox.className != 0) {//判断本单击为选中,并且不是根目录,则选中父目录
var chkObject = document.getElementById("ch"+chkBox.className);//得到父目录对象
chkObject.checked=true;
checkPar(chkObject);
}
}
</script>