我正在使用jsTree和搜索插件。现在我希望搜索只匹配子节点而不是父节点。
这就是我实施的内容:
"search": {
case_insensitive: true,
show_only_matches: true,
search_leaves_only: true,
}
这是我树的一个例子:
▼ Parent1
└ child 1
ParentABC
▼ Parentxyz
└ child abc
ParentABC
没有子节点,如果我搜索“abc”,则会显示ParentABC
和child abc
,但预期结果应仅为child abc
。
search_leaves_only: true
在子节点上运行良好,因为它们本身没有子节点。 jsTree在没有子节点时将节点视为叶子。
那么我只能以何种方式为子节点进行搜索查询?
修改 的解
我只需要使用自定义函数search_callback
。这是:
"search": {
show_only_matches: true,
search_callback: function (searchString, node) {
if (node.parent != "#" && node.text.toUpperCase().includes(searchString.toUpperCase()) == true) {
return node;
}
}
}
我填充树的方式是使用JSON数据,所有父节点的属性parent
都为"#"
。 case_insensitive: true
不再有效,这就是我使用toUpperCase()