下面就是JS代码
function clickHandler()
{
//定义需要操作的XHTML元素id
var targetId;
//定义需要被操作的XHTML元素
var targetElement;
//定触发事件的事件源(其中event是隐式可用的全局对象)
var srcElement = event.srcElement;
//根据其className属性值判断它不是叶子节点,即该节点可以展开
if (srcElement.className.substr(0,7) == "outline")
{
//如果事件源是树节点前的图片
if (srcElement.id.indexOf("Image") > 0)
{
//获取该节点对应<div.../>元素的id
targetId = srcElement.id.substring(0
, srcElement.id.length - 5) + "Details";
}
//如果事件源是树节点所在的<div.../>元素
else
{
//获取该节点对应<div.../>元素的id
targetId = srcElement.id + "Details";
}
//找到对应的<div.../>元素
targetElement = document.getElementById(targetId);
//如果targetElement对象存在
if (targetElement)
{
//如果该<div.../>元素处于“隐藏”状态
if (targetElement.style.display == "none")
{
//显示该<div.../>元素
targetElement.style.display = "";
}
else
{
//否则,隐藏该<div.../>元素
targetElement.style.display = "none";
}
}
//如果事件源是树节点前的图片
if (srcElement.id.indexOf("Image") > 0)
{
//获取该节点前的<img.../>元素的id
targetId = srcElement.id;
}
//如果事件源是树节点所在的<div.../>元素
else
{
//获取该节点前的<img.../>元素的id
targetId = srcElement.id + "Image";
}
//找到对应的<img.../>元素
targetElement = document.getElementById(targetId);
//如果该<img.../>元素中显示的图片是“加号”图片
if (targetElement.src.indexOf("plus") >= 0)
{
//将<img.../>的“加号”图片换为“减号”图片
targetElement.src = "image/minus.gif";
}
else
{
//否则,将<img.../>的“减号”图片换为“加号”图片
targetElement.src = "image/plus.gif";
}
}
}
//为页面文档的onclick事件绑定事件处理函数
document.onclick = clickHandler;
html代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JavaScript树</title>
<meta name="author" content="Yeeku.H.Lee" />
<meta name="website" content="http://www.crazyit.org" />
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<style type="text/css">
/* 控制根节点的CSS样式定义 */
.outline {
font-size: 9pt;
margin-left: 15pt;
text-indent: -28pt;
cursor: hand;
text-decoration: none
}
/* 控制第一级子节点的CSS样式定义 */
.outline1 {
font-size: 9pt;
margin-left: 24pt;
text-indent: -36pt;
cursor: hand;
text-decoration: none
}
/* 控制第二级子节点的CSS样式定义 */
.outline11 {
font-size: 9pt;
margin-left: 38pt;
text-indent: -50pt;
cursor: hand;
text-decoration: none
}
/* 控制根节点下叶子节点的CSS样式定义 */
.passage0 {
font-size: 9pt;
margin-left: 15pt;
text-indent: -28pt;
text-decoration: none
}
/* 控制第一级节点下叶子节点的CSS样式定义 */
.passage1 {
font-size: 9pt;
margin-left: 24pt;
text-indent: -36pt;
text-decoration: none
}
/* 控制第二级节点下叶子节点的CSS样式定义 */
.passage11 {
font-size: 9pt;
margin-left: 38pt;
text-indent: -50pt;
text-decoration: none
}
</style>
<script type="text/javascript" src="tree.js">
</script>
</head>
<body>
<div id="root" class="outline">
<img id="rootImage" class="outline" alt="rootImage"
src="image/plus.gif" />
我的电脑
</div>
<div id="rootDetails" style="display: none">
<div id="child1" class="outline1">
<img id="child1Image" class="outline1" alt="child1Image"
src="image/plus.gif" />
本地磁盘 C:
</div>
<div id="child1Details" style="display: none">
<div class="passage11">
<img class="passage11" src="image/passage.gif" />
文件一
</div>
<div class="passage11">
<img class="passage11" src="image/passage.gif" />
文件二
</div>
</div>
<div id="child2" class="outline1">
<img id="child2Image" class="outline1" alt="child2Image"
src="image/plus.gif" />
本地磁盘 D:
</div>
<div id="child2Details" style="display: none">
<div class="passage11">
<img class="passage11" src="image/passage.gif" />
文件三
</div>
<div class="passage11">
<img class="passage11" src="image/passage.gif" />
文件四
</div>
</div>
<div id="child3" class="outline1">
<img id="child3Image" class="outline1" alt="child3Image"
src="image/plus.gif" />
本地磁盘 E:
</div>
<div id="child3Details" style="display: none">
<div class="passage11">
<img class="passage11" src="image/passage.gif" />
文件五
</div>
<div class="passage11">
<img class="passage11" src="image/passage.gif" />
文件六
</div>
</div>
<div class="passage1">
<img class="passage1" src="image/passage.gif" />
文件七
</div>
</div>
</body>
</html>
相关推荐
javascript写3D的圣诞树javascript写3D的圣诞树javascript写3D的圣诞树javascript写3D的圣诞树javascript写3D的圣诞树
js,javascript写的一个下拉框和下拉树带滚动条
第一次接触树目录时理解的一个html文件,javascript写的,超简单
javascript写的树形结构,可收缩,可展开。
带复选框JS树 Javascript树 JS树 树形菜单
JavaScript树形展示JavaScript树形展示JavaScript树形展示
javascript写的一个功能齐备的树控件treeviewjavascript写的一个功能齐备的树控件treeviewjavascript写的一个功能齐备的树控件treeviewjavascript写的一个功能齐备的树控件treeview
JavaScript 树形菜单JavaScript 树形菜单JavaScript 树形菜单
用javascript写的树形结构用javascript写的树形结构用javascript写的树形结构用javascript写的树形结构用javascript写的树形结构用javascript写的树形结构
js做的简单树 js做的树,javaScript+div做的简单树,javaScript+div做的树
JS树,树组件 JS树,树组件 JS树,树组件 JS树,树组件
一个用javascript实现的非常漂亮的目录树
javascript树形菜单
javascript写各种样式的树形菜单
javascript 树形目录 javascript 树形目录 javascript 树形目录 javascript 树形目录 javascript 树形目录 javascript 树形目录
javascript树形控件,包含demo,效果还不错
一个简单的使用JavaScript生成圣诞树特效的代码示例一个简单的使用JavaScript生成圣诞树特效的代码示例一个简单的使用JavaScript生成圣诞树特效的代码示例一个简单的使用JavaScript生成圣诞树特效的代码示例
超级简单 javascript 树,很实用,易扩展
树形结构生成javaScript 树形结构生成javaScript 树形结构生成javaScript