我不确定是否有其他人遇到过这个问题。 我有一个数组元素列表,需要在自动建议上显示。我最大的问题是我需要根据类别名称中的匹配字符串显示所有类别。
例如 - 如果我在搜索框中输入auto,它应该在自动建议上显示匹配的记录,如 -
Indus - > 自动 mation - >贡献
构造 - > 自动 mation - >行业
Indus - > Es 自动 mation - > TNB
Cal - > Thead auto - > Textile
应根据匹配的字母顺序排序。如果前3个字符与类别匹配,则它应该首先显示该类别,然后显示第二个匹配,最后一次出现。我在jquery中使用regx来显示匹配的字符串。我更喜欢在jquery else php中解决方案。
如果我得到一些解决方案,那将非常有用。
答案 0 :(得分:0)
我使用这个绑定到按键:
jQuery('select.myClass').find('option').hide();
jQuery('select.myClass').find('option:hidden[value*="' + searchFor + '"]').show();
可能不是世界上效率最高的代码,但我针对一堆选项运行它,每个选项包含多达数百个选项,但尚未出现重大性能问题。
同样适用于其他任何事情,因为它所做的只是使用jQuery的*=
选择器。
Here for *= selector或类似地here for :contains selector
然后你需要做的就是在jQuery中实现正确的排序是拾取许多jQuery排序插件中的一个(或使用native javascript sort function)并使用类似这样的函数排序:
var searchFor = 'foo';
function sortByPos(val1, val2)
{
return (val1.indexOf(searchFor) > val2.indexOf(searchFor) ? +1 : -1);
}