Я использую jstree search plugin (documentation) для поиска нескольких идентификаторов в полях заголовка моего дерева HTML.Включите точное многопользовательский поиск заголовков узлов с помощью плагина поиска jstree.
Я взял оригинал jstree code (строка 3398) и сменил его, как предложено here, чтобы включить поиск нескольких слов в полях заголовка дерева.
Он отлично работает для «Название содержит» запросы (например, название ID: 40857332 из узла х и название ID: 408 узла у содержат искомое слово ID: 408), но я в догадках как изменить код, чтобы найти только точные соответствия (например, заголовок ID: 408 узла y соответствует поисковому слову ID: 408 точно).
Функция вызывается следующим образом:
$("#my_html_tree").jstree("search", search_words);
со следующими конфигурациями:
"search" : {"case_insensitive" : true, "search_method": "jstree_title_contains_multi"}
переменными "search_words" является строкой, содержащей несколько идентификаторов:
var search_words = "ID:4 ID:7 ID:3188";
Формат узлов HTML дерева:
<li id="3188"> <a title="ID:3188">Tree node 3188</a></li>
Это мой изменил код:
$.expr[':'].jstree_title_contains_multi = function(a,i,m){
var word, words = [];
var searchFor = m[3].toLowerCase().replace(/^\s+/g,'').replace(/\s+$/g,'');
if(searchFor.indexOf(' ') >= 0) {
words = searchFor.split(' ');
}
else {
words = [searchFor];
}
for (var i=0; i < words.length; i++) {
word = words[i];
if((a.getAttribute("title") || "").toLowerCase().indexOf(word) >= 0) {
return true;
}
}
return false;
};
Как я должен изменить код, чтобы включить поиск только точных совпадений?
Любая помощь будет принята с благодарностью.