下面就是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树形结构,具有展开和折叠功能。当然,这只是一个基础示例,实际项目中可能需要添加更多功能,如搜索、排序、拖放等。此外,还可以考虑使用现有库,如d3.js、jQuery UI Treeview...
第一次接触树目录时理解的一个html文件,javascript写的,超简单
在JavaScript和jQuery的世界里,创建一个带有滚动条的下拉框和下拉树是一项常见的任务,特别是在构建交互式用户界面时。下拉框通常用于提供一组可选的选项,而下拉树则更进一步,它以层级结构展示数据,允许用户以...
"一个用JS写的很好用的树"这个标题表明我们有一个专门用JavaScript编写的树形组件,它可能是一个库或框架,用于帮助开发者在网页上创建和管理树形结构。这样的组件通常会提供API来创建节点、添加子节点、删除节点、...
JavaScript树形菜单是一种在网页中实现层次结构数据展示的交互方式,它通常用于导航、文件管理、选项配置等场景。"带复选框"的JS树形菜单则更进一步,允许用户通过勾选复选框来选择或操作树节点,为用户提供了一种...
jQuery 是一个 JavaScript 库,它简化了 DOM 操作、事件处理、动画设计以及 AJAX 交互。在这个场景中,我们讨论的是使用 JavaScript 和 jQuery 实现的树形菜单。 树形菜单是一种常见的用户界面元素,它通常用于展示...
一个简单的实现方式是创建一个JavaScript对象,其中包含节点的值、子节点数组和其他属性(如ID、父节点等)。 ```javascript function TreeNode(value) { this.value = value; this.children = []; } ``` 2. **...
总的来说,创建一个JavaScript实现的目录树涉及数据结构设计、HTML和CSS渲染、事件处理、性能优化以及可访问性等多个方面。通过学习和实践这些技术,开发者可以构建出功能强大且美观的目录树视图,适用于各种应用...
本篇文章将深入探讨如何使用JavaScript来创建一个立体生动的3D圣诞树。 首先,要构建3D圣诞树,我们需要了解基本的3D图形学概念,如向量、矩阵变换和透视投影。在JavaScript中,我们可以使用Three.js这样的库来简化...
javascript写的一个功能齐备的树控件treeviewjavascript写的一个功能齐备的树控件treeviewjavascript写的一个功能齐备的树控件treeviewjavascript写的一个功能齐备的树控件treeview
用javascript写的树形结构用javascript写的树形结构用javascript写的树形结构用javascript写的树形结构用javascript写的树形结构用javascript写的树形结构
例如,一个简单的树节点定义可能如下所示: ```javascript function TreeNode(value) { this.value = value; this.children = []; this.parent = null; } ``` 要创建一个树,我们需要实例化TreeNode对象,并...
"JS写的一个无限分级树"就是一个利用JavaScript实现的可以无限扩展层级的树结构组件。这种组件通常用于展示具有层级关系的数据,并提供交互功能,如展开/折叠节点、搜索、拖放等。 首先,我们需要理解树的基本概念...
jsTree 是一个强大的 JavaScript 库,专用于在 Web 页面上创建交互式的树形结构。它基于纯 JavaScript 编写,无需依赖其他库,因此对于初学者和有经验的开发者来说,都是一个易于理解和使用的工具。通过这个库,你...
一个简单的树形菜单由`<ul>`和`<li>`元素构成,其中`<li>`元素代表菜单节点,而子节点则嵌套在父节点的`<ul>`中。例如: ```html 节点1 子节点1.1 子节点1.2 节点2 节点3 ``` 接下来,我们需要用...
创建一个JavaScript对象来表示树节点,通常包括`value`(节点值)、`children`(子节点数组)等属性。例如: ```javascript function TreeNode(value) { this.value = value; this.children = []; } ``` 2. ...
在本文中,我们将深入探讨如何使用JavaScript(JS)和jQuery_z_tree库来创建一个简单的树形菜单。这个菜单是基于SimpleTree1.3的JS思想,它极大地简化了前端开发人员的工作,使得创建动态、交互式的树状结构变得更加...
总之,`jstree` 是一个强大且灵活的 JavaScript 树形控件,能够满足各种树状结构的展示需求。通过深入了解其核心特性和用法,开发者可以轻松地将其集成到项目中,提升用户体验。同时,遵循最佳实践,可以确保项目的...
JavaScript树形控件是一种在网页中用于展示层次结构数据的交互式组件,它通常以节点的形式呈现,每个节点可以展开或折叠,...通过查看和理解这些文件,我们可以学习到如何构建和使用一个自定义的JavaScript树形控件。
本文将详细讲解如何使用JavaScript和HTML(通过div元素)来创建一个简单的树形结构。 首先,我们需要理解树的基本概念。在计算机科学中,树是一种非线性的数据结构,由节点(或称为顶点)和连接这些节点的边组成。...