我不确定是否有人遇到过这个问题。我有一个数组元素的列表,需要显示在自动建议。我最大的问题是我需要根据类别名称内的匹配字符串显示所有类别。
例如-如果我在搜索框中输入auto,它应该会显示匹配的记录在auto建议像-
Indus -> Auto tion -> Contribution
建筑-> 汽车建筑->工业
Indus -> Esautomation -> TNB
Cal -> headauto>Textile
应根据匹配的字母顺序排列。如果前3个字符与类别匹配,它应该首先显示该类别,然后是第二次出现和最后一次出现,依此类推。我使用jquery中的regx来显示匹配的字符串。我更喜欢jquery或php的解决方案。
我使用这个绑定键:
jQuery('select.myClass').find('option').hide();
jQuery('select.myClass').find('option:hidden[value*="' + searchFor + '"]').show();
可能不是世界上最有效的代码,但我在一堆选择中运行它,每个选择包含数百个选项,并且还没有出现主要的性能问题。同样的将适用于其他任何东西,因为它所做的是使用jQuery的*=
选择器。
这里for *= selector或者类似的这里for:contains selector
要在jQuery中实现正确的排序,你所需要做的就是选择一个jQuery排序插件(或使用原生javascript排序函数),并使用像这样的函数进行排序:
var searchFor = 'foo';
function sortByPos(val1, val2)
{
return (val1.indexOf(searchFor) > val2.indexOf(searchFor) ? +1 : -1);
}