Поисковый запрос jsTree только для дочерних узлов
Я использую 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()