
之前已经实现了前台精确搜索,现在需要改为模糊搜索
表格数据来自获取于后台存储在前台的 json 数据,需要完成前台分页,前台模糊搜索
前台分页的实现方法:
表格数据不是很多,一般不超过100个
每个 tr 高度为 40px,页总高度为 400px
设置 tbody 的 position 为 absolute,top 为 0px
下一页上一页为改变 tbody 的 top 值,达到分页的感觉
前台搜索的实现方法:
获取输入框的值,循坏表格 tr 进行对比,不相等则删除,刷新分页组件
if(!(factorVal == $val && factorValDesc == '' || factorVal == '' && factorValDesc == $desc || factorVal == $val && factorValDesc == $desc)) {
$(this).remove(); // 删除不满足搜索条件的 tr
elementViewPagination(); // 重新载入分页组件
}
如何改为模糊搜索?
我有一个思路,不知是否恰当。
使用 split() 拆分字符串,将 输入框的值 与 表格项的值 转化为 数组,然后两个数组进行比对,例如:
var a = "输入框的值";
var b = "表格项 1 的值";
var c = "表格项 2 的值";
var d = "表格项 3 的值";
var e = "表格项 4 的值";
a = [1,2,3];
b = [1,2,3];
c = [1,2,3,4];
c = [1,2,4,5];
d = [4,5,6,7,8];
用 a 与 b、c、d 逐个进行比较:
a 与 b 含有相同元素,并且元素个数一样,排第一
a 与 c、d 含有相同元素,但元素个数不一样,按相同元素数量来进行排序
a 与 d 不含有相同元素,移除
这样是否合理?或者有更好的办法,请在评论区留言告诉我,谢谢!
因为第一次接触前台搜索,如果有不恰当或者不正确的地方,欢迎大家指出来,麻烦了,谢谢!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
想法稍微有了偏差,使用 Index of 判断包含关系就好了。
1.你的第一条有毛病,包含相同元素且元素个数相同,也有很多种可能,并不止一种情况(元素排列顺序你没考虑?)
2.你这第二条也有毛病,虽然是模糊匹配,但是两个元素连在一起的关键词的权高还是三个互不相干的元素的偶然匹配相关度高(显然是前者?)
3.这条是最没有毛病的了!(well done)