layui/docs/tree/index.md
贤心 169f6ff9b8
feat: 重构 laytpl,增强对更多复杂模板结构的解析能力 (#2577)
* feat: 重构 laytpl,增强对更多复杂模板结构的解析能力

* Squashed commit of the following:

commit 6884f80378
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 14:45:58 2025 +0800

    release: v2.10.1

commit 8d643ad6dc
Merge: 5521e48c 213fe5a2
Author: corededitor <107152508+corededitor@users.noreply.github.com>
Date:   Wed Mar 19 14:24:50 2025 +0800

    feat: Merge pull request #2566 from layui/feat/component

    feat: 优化 component, tabs 若干功能

commit 213fe5a209
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 14:15:39 2025 +0800

    docs: 添加 component 文档中实验性选项标记

commit 5521e48c05
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 14:10:46 2025 +0800

    fix: 修复 `body` 初始 `line-height` 无效的问题 (#2569)

commit 8c7cf0f606
Author: 青崖 <33601030+bxjt123@users.noreply.github.com>
Date:   Wed Mar 19 14:10:08 2025 +0800

    优化 checkbox 标签风格选中且禁用时的显示 (#2563)

commit 23b21254d4
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 14:04:44 2025 +0800

    docs: Squashed commit of the following:

    commit 95a0503f41
    Merge: e6eb86ba 87ba4c43
    Author: 贤心 <3277200+sentsim@users.noreply.github.com>
    Date:   Wed Mar 19 14:03:13 2025 +0800

        Merge branch 'main' into 2.x

    commit e6eb86bacb
    Author: morning-star <26325820+Sight-wcg@users.noreply.github.com>
    Date:   Wed Mar 19 14:02:05 2025 +0800

        docs(slider): 修正错别字 (#2578)

    commit 46f7a9783e
    Merge: df1fc4f4 c204590a
    Author: 贤心 <3277200+sentsim@users.noreply.github.com>
    Date:   Fri Mar 14 19:07:50 2025 +0800

        Merge branch 'main' into 2.x

    commit df1fc4f419
    Author: itletu <itletu@163.com>
    Date:   Mon Mar 10 13:54:06 2025 +0800

        docs: 更正 class 公共类文档错误 (#2544)

        | layui-border-box | 设置元素及其所有子元素均为 `box-sizing: border-box` 模型的容器 |

commit 87ba4c4394
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 13:41:33 2025 +0800

    docs(version): 优化 2.9.x 锚点

commit a0f533f0fd
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 13:37:29 2025 +0800

    docs: 修复 tabs 文档示例异常问题

commit 0f0584e2ed
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 13:35:00 2025 +0800

    docs: 修复 tabs 文档中自定义事件示例重新点击 Preview 失效的问题

commit 172957d243
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 13:29:09 2025 +0800

    docs: 优化文档中的用词细节 (#2571)

commit 094be4ddcc
Author: letianpailove <113023596+letianpailove@users.noreply.github.com>
Date:   Wed Mar 19 13:28:46 2025 +0800

    fix: 更正 class 公共类文档错误 (#2562)

commit 53ded26cb9
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Sun Mar 16 00:15:25 2025 +0800

    fix: 优化 tabs 重载时未按照传入的 closable 正确渲染可关闭状态

commit bd892bf87e
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Sun Mar 16 00:15:17 2025 +0800

    feat(component): 新增 cache 原型方法,用于元素缓存操作

commit 6ccc5a453d
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Sun Mar 16 00:14:18 2025 +0800

    fix(component): 优化元素 lay-options 属性上的配置在重载时的优先级

commit 79b0a56f50
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Sun Mar 16 00:13:55 2025 +0800

    fix(component): 修复 reload 时传入的选项未正确合并的问题

* refactor(laytpl): 优化代码细节

* docs: 重写 laytpl 模块文档
2025-03-27 23:55:04 +08:00

129 lines
2.9 KiB
Markdown

---
title: 树组件 tree
toc: true
---
# 树组件
> 树组件 `tree` 是以树形为结构的菜单伸缩型组件,*当前版本中,`tree`主要用于树菜单展示,交互性相对较弱。*
<h2 id="examples" lay-toc="{anchor: null}" style="margin-bottom: 0;">示例</h2>
<div>
{{- d.include("/tree/detail/demo.md") }}
</div>
<h2 id="api" lay-toc="{hot: true}">API</h2>
| API | 描述 |
| --- | --- |
| var tree = layui.tree | 获得 `tree` 模块。 |
| [tree.render(options)](#render) | tree 组件渲染,核心方法。 |
| [tree.getChecked(id)](#getChecked) | 获取选中的节点数据 |
| [tree.setChecked(id, idArr)](#setChecked) | 设置对应 id 的节点选中 |
| [tree.reload(id, options)](#reload) | tree 实例重载 |
<h3 id="render" lay-toc="{level: 2}">渲染</h3>
`tree.render(options);`
- 参数 `options` : 基础属性选项。[#详见属性](#options)
<h3 id="options" lay-toc="{level: 2, hot: true}">属性</h3>
<div>
{{- d.include("/tree/detail/options.md") }}
</div>
<h3 id="options.data" lay-toc="{level: 3, hot: true}">data 格式</h3>
<div>
{{- d.include("/tree/detail/options.data.md") }}
</div>
<div id="options.customName" class="ws-anchor">
您可以对上述 `data` 中常用的字段进行自定义名称 <sup>2.8.14+</sup> :
</div>
```
var tree = layui.tree;
// 渲染
tree.render({
elem: '', // 绑定元素选择器
id: 'test', // 自定义 id 索引
data: [], // 数据源
customName: { // 自定义 data 字段名 --- 2.8.14+
id: 'id',
title: 'title',
children: 'children'
},
// 其他属性 …
});
```
<h3 id="getChecked" lay-pid="api" class="ws-anchor">获取选中的节点数据</h3>
`tree.getChecked(id);`
- 参数 `id` : 对应 tree 渲染时定义的 id 属性值
```
var tree = layui.tree;
// 渲染
tree.render({
elem: '', // 绑定元素选择器
id: 'test', // 自定义 id 索引
// 其他属性 …
});
// 获取选中的节点数据
var checkData = tree.getChecked('test');
```
<h3 id="setChecked" lay-pid="api" class="ws-anchor">设置对应 id 的节点选中</h3>
`tree.setChecked(id, idArr);`
- 参数 `id` : 对应 tree 渲染时定义的 id 属性值
- 参数 `idArr` : 对应 tree 渲染时的 data 中的 id 属性值。数组格式,可设置多个。
```
var tree = layui.tree;
// 渲染
tree.render({
elem: '', // 绑定元素选择器
id: 'test', // 自定义 id 索引
// 其他属性 …
});
// 设置对应 id 的节点选中
tree.setChecked('test', [1, 3]); // 批量勾选 id 为 1,3 的节点
```
<h3 id="reload" lay-toc="{level: 2}">重载</h3>
`tree.reload(id, idArr);`
- 参数 `id` : 对应 tree 渲染时定义的 id 属性值
- 参数 `options` : 基础属性选项。[#详见属性](#options)
```
var tree = layui.tree;
// 渲染
tree.render({
elem: '', // 绑定元素选择器
id: 'test', // 自定义 id 索引
// 其他属性 …
});
// 重载
tree.reload('test', { // options
data: []
});
```