form.on('submit(searchUnit)', function(params){
var treeElem = $('#treeList'), filterElem = $('[name="keyword"]');
if (!filterElem.length || !filterElem.length) {
return;
}
var value = filterElem.val();
var HIDE = 'layui-hide';
var hintClass = 'search_hit';
// 先恢复现场
treeElem.find('.' + HIDE).removeClass(HIDE);
treeElem.find('.' + hintClass).removeClass(hintClass).each(function (index, item) {
item = $(item);
item.html(item.data('textOld')).data('textOld', null);
});
// 如果有值筛选开始
if (value) {
layui.each(treeElem.find('.layui-tree-entry'), function (index, treeElem) {
var elem = $(treeElem);
console.dir(elem);
var textTemp = elem.text();
if (textTemp.indexOf(value) === -1) {
// 不存在就隐藏
elem.closest('div').addClass(HIDE);
} else {
// 命中就添加一个class
elem.find('.layui-tree-txt').addClass(hintClass)
.data('textOld', textTemp)
.html(textTemp.replace(new RegExp(value, 'g'), '<span class="search_hint_text">' + value + '</span>'));
}
});
layui.each(treeElem.find('.' + hintClass), function (index, treeElem) {
var elem = $(treeElem);
var parentElem=elem.parents('div').parent('div').prev();
//展示父节点
parentElem.removeClass(HIDE);
//展示子节点 //在搜索值为中间级别的时候,搜索结果会导致叶子节点的图标变成"+",未解决
elem.parents('div').parent('div').next().children('div').children('div').removeClass(HIDE);
console.log(parentElem.find(".layui-icon-addition"));
});
}
})
大佬们,如果有前端对数据搜索的可以交流,查了好多只能对DOM 操作