大家好 我现在遇到了一个问题
是这样的 我使用了 Element UI 的树控件
展示的数据 是这样的
AAAAAAA
BBBBBBBBB
CCCCCCC
EEEEEEE
FFFFFFFFFF
DDDDDDDD
是可以多选的 ,我想获取 所选取的节点的完整名字 比如我两个都选了
最后的拼接结果为
^AAAAAAA/BBBBBBBBB/CCCCCCC|^EEEEEEE/ FFFFFFFFFF/DDDDDDDD
可以考虑给每个节点添加一个自定义的name属性,然后选中的时候,直接从节点中取出name属性进行拼接
以下回答引用自chatGpt, 有用的话,请采纳哇!!!
你可以通过以下代码实现:
// 定义一个数组,用于存储选中节点的完整名字
let selectedNodes = [];
// 定义一个递归函数,用于遍历树节点
function traverse(node, path) {
// 如果节点被选中,则将节点的完整名字添加到数组中
if (node.checked) {
selectedNodes.push(path + node.label);
}
// 如果节点有子节点,则递归遍历子节点
if (node.children) {
node.children.forEach(child => {
traverse(child, path + node.label + '/');
});
}
}
// 遍历树节点,获取选中节点的完整名字
treeData.forEach(node => {
traverse(node, '');
});
// 将选中节点的完整名字拼接成字符串
const result = selectedNodes.join('|');
其中,treeData 是你的树节点数据。遍历树节点时,使用递归函数 traverse,遍历每个节点,如果节点被选中,则将节点的完整名字添加到 selectedNodes 数组中。最后,将 selectedNodes 数组中的元素拼接成字符串,即为所选取的节点的完整名字。