一个带CheckBox的树形目录的递归算法(javascript)
var head="display:''"
img_close=new Image()
img_close.src="/sysManage/images/f.gif"
img_open=new Image()
img_open.src="/sysManage/images/fo.gif"
img3=new Image()
img3.src="/sysManage/images/e.gif";
if(!document.all)return
var eventObj = event.srcElement;
if(eventObj.tagName=="IMG" ) {
//判断是否存在子节点
var ***c = eventObj.src ;
if(***c == null || ***c.length<=0)return;
if(***c.indexOf("e.gif") >= 0)return;
var srcIndex = eventObj.sourceIndex;
var nested = document.all[srcIndex + nOffIndex];
if(nested.tagName!="DL"){
nested = document.all[srcIndex + 1];
}
nested.style.display='inline';
if(***c.indexOf("f.gif")>0)
eventObj.src = img_open.src;
}
else {
nested.style.display="none";
if(***c.indexOf("fo.gif")>0)
eventObj.src = img_close.src;
}
var nChnlId = parseInt(eventObj.name);
if(!isNaN(nChnlId)){
onClickChannel(nChnlId);
}
}
}
/** 选中某个节点下的所有子节点(主要用于权限树的选择).
* @param obj 节点选择框对象(checkbox对象)
*根据所选节点的值,遍历整个树,从而选中满足条件的节点.
*/
function checkNode(obj) {
for (var i=0;i<form1.chkID.length;i++)
{
if (form1.chkID[i].value.length > obj.value.length && form1.chkID[i].value.substring(0,obj.value.length) == obj.value)
{
{
}
else
{
form1.chkID[i].checked = false;
}
}
}
}
*/
{
var elm = obj.parentNode;
checkChildrenRecurve(elm);
//checkRootRecurve(document.getElementById("root"));
}
{
var dd = elm;
var dl = dd.lastChild;
if (dl.tagName != "DL") return;
var ddlist = dl.children;
for (var i=0;i<ddlist.length;i++)
{
ddlist[i].firstChild.checked=elm.firstChild.checked;
}
}
{
if (dl.tagName != "DD")
{
dl.parentNode.firstChild.firstChild.allChecked = dl.parentNode.firstChild.firstChild.checked;
dl.parentNode.firstChild.firstChild.allUnChecked = !dl.parentNode.firstChild.firstChild.checked;
return;
}
var lis = dl.children;
var allChecked = true;
var allUnChecked = true;
for (var i=0;i<lis.length;i++)
{
checkRootRecurve(lis[i].lastChild);
allChecked = allChecked && lis[i].firstChild.firstChild.checked && lis[i].firstChild.firstChild.allChecked;
allUnChecked = allUnChecked && !lis[i].firstChild.firstChild.checked && lis[i].firstChild.firstChild.allUnChecked;
}
dl.parentNode.firstChild.firstChild.allChecked=allChecked;
dl.parentNode.firstChild.firstChild.allUnChecked=allUnChecked;
if (allChecked || allUnChecked)
{
dl.parentNode.firstChild.firstChild.checked=allChecked;
dl.parentNode.firstChild.firstChild.disabled=false;
dl.parentNode.firstChild.childStatus=false;
}
else
{
dl.parentNode.firstChild.firstChild.disabled=true;
dl.parentNode.firstChild.childStatus=true;
dl.parentNode.firstChild.firstChild.checked=true;
}
*如果所有子节点都被选中,然么父节点也要选中
*output:无
*/
function selParentNode(nodeIDStr,spltStr){
var nodeLen=nodeIDStr.length;
var nodeList;
return;
}
for (j=0;j<nodeIDList.length;j++)
{
if(checkSubNode(nodeIDList[j]))
{
for (var k=0;k<form1.chkID.length;k++)
{
if(form1.chkID[k].value == nodeIDList[j] )
{
form1.chkID[k].checked = true;
break;
}
}
}
}
}
/**
* 判断某个节点值下的所有子节点是否被选中(主要用于权限树的选择).
* curNodeID 某个节点的值
*output:true 或 false
**/
function checkSubNode(curNodeID) {
for (var i=0;i<form1.chkID.length;i++)
{
if (form1.chkID[i].value.substring(0,curNodeID.length) == curNodeID && form1.chkID[i].value.length >= (curNodeID.length +2) )
{
if(!form1.chkID[i].checked )
{
return false;
}
}
}
return true;
}
一个带CheckBox的树形目录的递归算法(javascript)相关推荐
- 带CheckBox的CListCtrl,源码可下载
实现了一个带CheckBox的CListCtrl,源码可从http://d.download.csdn.net/down/2804276/JoeBlackzqq下载.
- Qt之QSS:带CheckBox的QGroupBox及其样式设计
前言 在引入QGroupBox的QSS时,会出现下图中的三种问题,导致界面显示极其丑陋.所以要改变QSS设置使界面更bf~ 图a 左边显示问题 图b 标题下沉问题 图c 不对称 下面是两个方式改变QS ...
- asp mysql 可编辑树状,基于数据库动态生成树形目录-ASP教程,数据库相关
一. 目录树的广泛应用 为了这段内容,在百度上搜了搜,内容一大通,相关的竟没有.搜什么搜嘛?用处不是明摆着吗?资源管理器文件夹的管理,论坛中多级论坛的管理,java中的awt正是缺乏包括树形目录这样的 ...
- Silverlight Telerik控件学习:带CheckBox复选框的树形TreeView控件
在web开发中,带checkbox的tree是一个很有用的东东,比如权限选择.分类管理,如果不用sl,单纯用js+css实现是很复杂的,有了SL之后,就变得很轻松了 解决方案一: 利用Silvelri ...
- android 树形目录结构的实现(包含源码)
1.效果如图 ,老板的需求: 1.各种群按照树形目录展开 2.点击列表可以收缩展开 3.选中后进行筛选 2.分析下思路 每个数据都应该有个根节点,也就是上级目录.确定了上级目录就可以找到当前数据对应的 ...
- WPF MVVM模式 带CheckBox的树形图
前不久做项目中有设计到树形图,还是带CheckBox的树形图,可伤我这种小白的脑筋了,上网找了好多资料参考写出来了,下面来看一下: 首先看这个带CheckBox树形图长啥样,只是一个简单的二级菜单,如 ...
- element做树形下拉_一个基于 elementUi 的树形下拉框组件vue
wl-vue-select,wl-tree-select 简介 用于vue框架的树形下拉框及带全选的普通下拉框. Tree drop-down box for vue framework and or ...
- Java实现遍历N级树形目录结构
最近挺忙,一直在做项目,然后有个树形目录结构需要返回给前端,这里给大家说一下实现的思路. 具体达到的效果类似: 一级目录A: 二级目录A: 三级目录: 四级目录: 文件.txt 二级目录B: 文件1. ...
- WPF 带CheckBox、图标的TreeView
WPF 带CheckBox.图标的TreeView 在WPF实际项目开发的时候,经常会用到带CheckBox的TreeView,虽然微软在WPF的TreeView中没有提供该功能,但是微软在WPF中提 ...
最新文章
- 【数据分析】Python :知乎数据清洗整理和结论研究
- 【转】使用python3的typing模块提高代码健壮性
- VMware QueryPerformanceCounter/GetTickCount 悬案
- 如何处理高并发情况下的DB插入
- android doze模式源码分析,Android Doze模式启用和恢复详解
- 应该掌握的神奇函数——sscanf的用法
- 问题:从键盘读取特定类型的数据(使用Scanner读取int类型)
- [JavaWeb-HTML]HTML标签_块标签
- switch 字符串 java_JDK7新特性switch支持字符串
- Android广播(笔记)
- pandas Dataframe表格转Markdown格式
- Jenkins 配置mirrors
- (executor 1 exited caused by one of the running tasks) Reason: Executor heartbeat timed out after
- 价值连城的精确短线交易技术--Gartley“222”
- 感悟篇:我在B端做数据分析(一)
- Python3 根据m3u8下载视频,批量下载ts文件并且合并
- 短期目标:三月、四月、五月
- Gunicorn-使用详解
- 风控基础——风控模型、规则、策略的区别
- UPS不间断电源调试注意事项