jquery搜索文本框:如何在搜索时忽略少量列表重复元素

时间:2016-11-16 19:51:37

标签: javascript jquery

我有用户可以从中选择一个国家/地区的国家/地区列表。我们很少有国家需要位于显示列表的顶部。在这些国家显示在最顶层之后,我们对各国的字母排序正常。

但是顶部的国家再次按字母顺序排列,因此当用户搜索它们时,它们会出现两次。例如,印度排在最前面,也按字母顺序排列。因此,当用户输入" Ind"时,会显示两个让用户感到困惑的结果。

我们正在使用普通的jquery字符串匹配,并根据用户输入在li上执行show / hide,如下所示,搜索列表中的用户输入:

variables = ['var1', 'var2']
for var in variables:
    df[var + "_new"] = None

for var in variables:
    for k, v in df.groupby(var).mean()['target'].iteritems():
        df.loc[df[var] == k, var + "_new"] = v

如何保留这些重复条目,并在有人搜索时只显示一个实例。

以下是小提琴的链接 - demo fiddle

1 个答案:

答案 0 :(得分:0)

您可以尝试跟踪已在阵列中找到的国家/地区,如果已找到它们,则隐藏它们。

$('#s').keyup(function(){
   var foundCountries = [];
   var valThis = $(this).val().toLowerCase();

    $('.countryList>li').each(function(){
        var text = $(this).text().toLowerCase();

        if(!text.inArray(foundCountries) && text.indexOf(valThis) == 0) {
              $(this).show();
              foundCountries.push(text);
        } else {
              $(this).hide();
        }      
   });
});