el-tree 选中父元素 也让父元素底下的children也默认被选中
时间: 2023-11-29 07:06:24 浏览: 53
css选中父元素下的第一个子元素(:first-child)
5星 · 资源好评率100%
您可以通过监听 `node-click` 事件,在事件回调中递归遍历当前节点的所有子孙节点,并修改它们的选中状态,来实现选中父元素也让父元素底下的children也默认被选中的功能。具体实现代码如下:
```html
<template>
<el-tree :data="data" :node-key="nodeKey" @node-click="handleNodeClick"></el-tree>
</template>
<script>
export default {
data() {
return {
data: [
{
id: 1,
label: '父节点1',
children: [
{
id: 11,
label: '子节点1-1'
},
{
id: 12,
label: '子节点1-2'
}
]
},
{
id: 2,
label: '父节点2',
children: [
{
id: 21,
label: '子节点2-1'
},
{
id: 22,
label: '子节点2-2'
}
]
}
],
nodeKey: 'id'
};
},
methods: {
handleNodeClick(data, node) {
// 递归遍历所有子孙节点,并修改它们的选中状态
const traverse = (node) => {
if (node.children && node.children.length > 0) {
node.children.forEach(child => {
this.$refs.tree.setChecked(child.id, true);
traverse(child);
});
}
};
traverse(node);
}
}
};
</script>
```
以上代码中,在 `handleNodeClick` 方法中,我们通过递归遍历当前节点的所有子孙节点,并通过 `setChecked` 方法来修改它们的选中状态。注意需要给 `<el-tree>` 组件设置 `ref` 属性,以便在方法中使用。
阅读全文