在网页开发中,机构树结构是一种常见的展示方式,它能够清晰地展示不同层级之间的关系。jQuery库中的tree插件功能强大,但有时我们可能需要在不引入外部库的情况下实现类似的功能。今天,我们就来一起学习如何使用原生JavaScript来实现一个具有jQuery风格机构树结构的代码。
准备工作
在开始编写代码之前,我们需要准备以下内容:
- HTML结构:定义一个用于展示机构树的容器。
- CSS样式:为机构树添加一些基本的样式,使其看起来更美观。
- JavaScript逻辑:编写JavaScript代码来处理机构的展开和折叠。
HTML结构
<div id="orgTree">
<ul>
<li>
<span>公司总部</span>
<ul>
<li>研发部</li>
<li>市场部</li>
<li>财务部</li>
</ul>
</li>
<li>分公司一</li>
<li>分公司二</li>
</ul>
</div>
CSS样式
#orgTree ul {
list-style-type: none;
padding: 0;
}
#orgTree li {
cursor: pointer;
padding-left: 20px;
}
#orgTree li ul {
display: none;
}
JavaScript逻辑
下面是实现机构树展开和折叠的核心JavaScript代码:
document.addEventListener('DOMContentLoaded', function() {
var orgTree = document.getElementById('orgTree');
// 获取所有需要展开的层级
function expandTree() {
var items = orgTree.querySelectorAll('li');
items.forEach(function(item) {
var span = item.querySelector('span');
if (span) {
span.addEventListener('click', function() {
var childUl = item.querySelector('ul');
if (childUl) {
childUl.style.display = childUl.style.display === 'none' ? 'block' : 'none';
}
});
}
});
}
// 初始化机构树
expandTree();
});
代码解析
- 获取DOM元素:使用
document.getElementById和querySelectorAll方法获取机构树的容器和所有列表项。 - 绑定点击事件:为每个列表项中的
span元素绑定点击事件,当点击时,切换其子列表的显示状态。 - 显示和隐藏子列表:通过修改
ul元素的display属性来控制子列表的显示和隐藏。
总结
通过以上步骤,我们使用原生JavaScript实现了一个具有jQuery风格机构树结构的代码。这种方法不依赖于任何外部库,能够有效地减少页面加载时间,并提高应用的性能。希望这篇文章能够帮助你更好地理解机构树结构的实现方式。
