树形表格(Tree Table)是一种常见的数据展示方式,它结合了表格的行列结构和树形结构的层次关系,能够清晰地展示具有层级关系的数据。在前端开发中,树形表格常用于展示组织结构、文件目录、分类信息等。
树形表格通常由以下几个部分组成:
以下是一个简单的树形表格实现示例,使用JavaScript和HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tree Table Example</title>
<style>
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
}
.indent {
padding-left: 20px;
}
.toggle {
cursor: pointer;
}
</style>
</head>
<body>
<table id="treeTable">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<!-- Example data will be inserted here -->
</tbody>
</table>
<script>
const data = [
{
name: 'Root',
type: 'Folder',
children: [
{
name: 'Subfolder 1',
type: 'Folder',
children: [
{ name: 'File 1.1', type: 'File' },
{ name: 'File 1.2', type: 'File' }
]
},
{ name: 'File 2', type: 'File' }
]
}
];
function renderTreeTable(nodes, level = 0) {
nodes.forEach(node => {
const row = document.createElement('tr');
row.innerHTML = `
<td class="indent-${level}">${node.name}</td>
<td>${node.type}</td>
`;
document.querySelector('#treeTable tbody').appendChild(row);
if (node.children && node.children.length > 0) {
const toggleIcon = document.createElement('span');
toggleIcon.className = 'toggle';
toggleIcon.textContent = '+';
toggleIcon.onclick = () => {
const rows = Array.from(document.querySelectorAll(`.indent-${level + 1}`));
rows.forEach(row => row.style.display = row.style.display === 'none' ? '' : 'none');
toggleIcon.textContent = toggleIcon.textContent === '+' ? '-' : '+';
};
row.cells[0].appendChild(toggleIcon);
renderTreeTable(node.children, level + 1);
}
});
}
renderTreeTable(data);
</script>
</body>
</html>通过以上内容,你应该对树形表格有了全面的了解,并能够在实际项目中应用和优化。
没有搜到相关的文章