我使用jstree 搜索插件(文档)在我的 HTML 树的标题字段中搜索多个 ID。
我采用了原始的 jstree代码(第 3398 行)并按照此处的建议对其进行了更改,以在树的标题字段中启用多字搜索。
它适用于“标题包含”查询(例如节点 x 的标题ID:40857332和节点 y 的标题ID:408包含搜索词ID:408)但我不知道如何更改代码以便仅查找完全匹配(例如节点 y 的标题ID:408与搜索词ID:408完全匹配)。
该函数的调用方式如下:
$("#my_html_tree").jstree("search", search_words);
具有以下配置:
"search" : {"case_insensitive" : true, "search_method": "jstree_title_contains_multi"}
变量“search_words”是一个包含多个 ID 的字符串:
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;
};
我必须如何更改代码才能仅搜索完全匹配?
任何帮助将不胜感激。