2015-12-14 132 views
3

enter image description here搜索和删除的兄弟姐妹时,搜索结果中发现

我想添加一个搜索过滤器,使用户能够找到合同的这个名单,而他们正在打字的结果。例如:如果用户键入“IP”,则应显示前4个结果。以下是该函数:

$('#doc_search').on('keyup', function(){ 

    var inputtext = $(this).val().toLowerCase(); 

    $('.subdoclist li a').each(function() { 
     if(inputtext ==''){ 
      $('.subdoclist li').each(function(){ 
       $(this).addClass('show'); 
      }); 
      console.log(inputtext); 
     } else if ($(this).text().toLowerCase() === inputtext) { 

      $('.subdoclist li').removeClass('show'); 
      $(this).parent().addClass('show'); 
      console.log(inputtext); 
     } 

    }); 
}) 
  • “#doc_search”在顶部
  • “.subdoclist礼”是包含文本

锚标签在列表项的搜索栏一刻,我必须键入确切的文字,然后才能搜索。

小提琴链接:Click here

+1

我切换逻辑张望了一下这里:http://jsfiddle.net/n1wxkhkp/ - 如果没有输入,显示所有的事情,否则显示每个包含字符串的地方。 –

+0

这就像一个魅力,你做了所有的工作哈哈。如果你是我的同事,我会给你买一瓶啤酒,谢谢你。发布这个答案,我会检查它作为答案。 – AnAspiringCanadian

回答

1

这是一对夫妇的事情搞掂,首先我使用的indexOf> -1,看看如果输入的字符串包含每一个潜在的比赛中,和,而不是对所有的人都卸下显示每个比赛我在它执行搜索之前执行它。

$('#doc_search').on('keyup', function() { 
    var inputtext = $(this).val().toLowerCase(); 
    if (inputtext != '') { 
    $('.subdoclist li').removeClass('show'); 
    $('.subdoclist li a').each(function() { 
     if ($(this).text().toLowerCase().indexOf(inputtext) > -1) { 
     $(this).parent().addClass('show'); 
    } 
     }); 
    } else { 
    $('.subdoclist li').addClass('show'); 
    } 
}); 
1

如果你想要一个简单的搜索,你可以检查,如果输入的文本包含的字符串是这样的: How to check whether a string contains a substring in JavaScript?

您可以检查在搜索中输入的每个单词,使用空格分隔符分割字符串并使用循环,但如果输入的内容太多或太多,则需要付出更多努力。

+0

我更新了小提琴:http://jsfiddle.net/9tmg5osg/2/ 但它似乎需要将不能正常工作。它只搜索一个项目。 – AnAspiringCanadian

+0

看到我的小提琴,每次你做一场比赛,你都会从所有的李子中删除秀。 –

1

短期和大小写敏感的变体:

$('#doc_search').on('keyup', function() { 
    var inputtext = $(this).val(); 
    if (inputtext !== '') { 
     $('.subdoclist li').each(function() { 
     $(this).toggle($("a:contains('"+ inputtext +"')",$(this)).length > 0); 
     }); 
    } else { 
    $('.subdoclist li').show(); 
    } 
}); 
+0

我不想要任何敏感的东西,我通过亚当得到了答案,我仍然很感激您的意见。 – AnAspiringCanadian

+0

谢谢!我只是想展示一些“短”的东西 – RomanPerekhrest