|
目前eltree组件是用脚本写入选项,但是我用
// 在组件加载完成后执行高亮操作
document.getElementById('eltree').addEventListener('load', function() {
highlightNodeByName('选项节点的名称');
});
// 递归遍历树节点,并根据名称高亮
function highlightNodeByName(nodeName) {
const rootNodes = document.querySelectorAll('.el-tree-node'); // 获取所有的根节点
rootNodes.forEach(node => traverseAndHighlight(node, nodeName));
}
// 递归遍历每个节点,查找匹配的节点名称并高亮
function traverseAndHighlight(node, nodeName) {
const label = node.querySelector('.el-tree-node__label'); // 查找当前节点的标签
if (label && label.innerText.trim() === nodeName.trim()) {
// 如果找到匹配的节点名称,则高亮该节点的内容部分
const content = node.querySelector('.el-tree-node__content');
if (content) content.style.backgroundColor = 'yellow';
} else {
// 否则,清除背景色
const content = node.querySelector('.el-tree-node__content');
if (content) content.style.backgroundColor = '';
}
// 查找并遍历该节点的子节点
const childNodes = node.querySelectorAll(':scope > .el-tree-node__children > .el-tree-node');
childNodes.forEach(childNode => traverseAndHighlight(childNode, nodeName));
}
rootNodes.forEach无法获取到除根节点之外的子节点,没法给子节点添加样式,请问要如何解决呢?子节点是查询值,所以无法用vue slots
|
|