放一段选取treeview控件生成树形菜单复选框所有子节点的js代码
2008-04-25 02:58
513 查看
<script language="javascript" type="text/javascript">
var Obj_;
document.onclick=function()
{
if(event.srcElement.tagName=="INPUT")
{
Obj_=event.srcElement;
getNextElement(event.srcElement);
}
}
function getNextElement(srcObj)
{
var i=0;
while(srcObj.tagName!="TABLE")
{
srcObj=srcObj.parentNode;
i++;
if(i>20) break;
}
//
if(srcObj.nextSibling==null)
{
selectParentNode(srcObj);
return;
}
if(srcObj.nextSibling.tagName=="DIV")
{
var targetObj=srcObj.nextSibling;
selectThem(targetObj);
}
// else if(srcObj.nextSibling.tagName=="TABLE")
// {
// //
// }
selectParentNode(srcObj);
}
function selectThem(targetObj_)
{
var ChexBox_Obj=targetObj_.getElementsByTagName("INPUT");
for(var i=0;i<ChexBox_Obj.length;i++)
{
ChexBox_Obj[i].checked=Obj_.checked;
}
}
function selectParentNode(obj)
{
while(obj.parentNode.previousSibling.tagName=="TABLE")
{
//
var parentObj=obj.parentNode;
var ChexBox_brother=parentObj.getElementsByTagName("INPUT");
var counter_=0;
for(var i=0;i<ChexBox_brother.length;i++)
{
if(ChexBox_brother[i].checked) counter_++;
}
//
var parentNContiner=obj.parentNode.previousSibling;
var CheckB=parentNContiner.getElementsByTagName("INPUT");
CheckB[0].checked=counter_>0?true:false;
obj=parentNContiner;
}
}
</script>
想必大家都是触类旁通的,这段代码适合vs2005中treeview控件生成的树形菜单,以下是代码片段:
<asp:TreeView ID="TreeView_1" ShowCheckBoxes="all" runat="server" ShowLines="true" >
var Obj_;
document.onclick=function()
{
if(event.srcElement.tagName=="INPUT")
{
Obj_=event.srcElement;
getNextElement(event.srcElement);
}
}
function getNextElement(srcObj)
{
var i=0;
while(srcObj.tagName!="TABLE")
{
srcObj=srcObj.parentNode;
i++;
if(i>20) break;
}
//
if(srcObj.nextSibling==null)
{
selectParentNode(srcObj);
return;
}
if(srcObj.nextSibling.tagName=="DIV")
{
var targetObj=srcObj.nextSibling;
selectThem(targetObj);
}
// else if(srcObj.nextSibling.tagName=="TABLE")
// {
// //
// }
selectParentNode(srcObj);
}
function selectThem(targetObj_)
{
var ChexBox_Obj=targetObj_.getElementsByTagName("INPUT");
for(var i=0;i<ChexBox_Obj.length;i++)
{
ChexBox_Obj[i].checked=Obj_.checked;
}
}
function selectParentNode(obj)
{
while(obj.parentNode.previousSibling.tagName=="TABLE")
{
//
var parentObj=obj.parentNode;
var ChexBox_brother=parentObj.getElementsByTagName("INPUT");
var counter_=0;
for(var i=0;i<ChexBox_brother.length;i++)
{
if(ChexBox_brother[i].checked) counter_++;
}
//
var parentNContiner=obj.parentNode.previousSibling;
var CheckB=parentNContiner.getElementsByTagName("INPUT");
CheckB[0].checked=counter_>0?true:false;
obj=parentNContiner;
}
}
</script>
想必大家都是触类旁通的,这段代码适合vs2005中treeview控件生成的树形菜单,以下是代码片段:
<asp:TreeView ID="TreeView_1" ShowCheckBoxes="all" runat="server" ShowLines="true" >
相关文章推荐
- JS实现无限级网页折叠菜单(类似树形菜单)效果代码
- 写一段最短的代码,用上js所有关键字
- 写一段最短的代码,用上js所有关键字
- JS兼容所有浏览器的一段加入收藏代码,设置为首页
- dtree 网页树状菜单及传递对象集合到js内,动态生成节点
- 查询所有子节点,包含节点本身(遍历树形菜单)
- 动态修改SiteMapPath - 代码生成所有节点 实例
- php小代码----树形菜单生成
- JavaScript 写一段最短的代码,用上js所有关键字
- 4行代码简单实现js树形菜单
- asp.net TreeView递归循环子节点生成树形菜单实例
- 写一段最短的代码,用上js所有关键字
- 4行代码简单实现js树形菜单
- JS无限级树形菜单(原创代码)
- [置顶] 4行代码简单实现js树形菜单
- 一段JS代码,可用于生成动态表单
- JS实现无限级网页折叠菜单(类似树形菜单)效果代码
- 前端 js树形菜单代码
- JS特效代码大全(七)超全的JS树形菜单共享
- dtree 网页树状菜单及传递对象集合到js内,动态生成节点