Javascript jquery搜索结果筛选

Javascript jquery搜索结果筛选,javascript,jquery,sphinx,Javascript,Jquery,Sphinx,我正在用php/sphinx/jquery构建一个搜索引擎,除了过滤搜索结果外,我的大部分功能都正常工作。搜索结果不是筛选提交的,而是显示所有结果,然后单击复选框时,我试图使用jquery隐藏不匹配的结果 我在这里为它做了一把小提琴 工作原理: 选中一个框并显示相应的元素,当选中另一个框时,将其添加到允许显示的框中 什么不起作用: 如果选中多个复选框并取消选中其中一个复选框,则不会显示相应的元素 对不起,解释得不好,但菲尔德会为自己说话的,谢谢 我简化了你的点击功能 $(document).re

我正在用php/sphinx/jquery构建一个搜索引擎,除了过滤搜索结果外,我的大部分功能都正常工作。搜索结果不是筛选提交的,而是显示所有结果,然后单击复选框时,我试图使用jquery隐藏不匹配的结果

我在这里为它做了一把小提琴

工作原理: 选中一个框并显示相应的元素,当选中另一个框时,将其添加到允许显示的框中

什么不起作用: 如果选中多个复选框并取消选中其中一个复选框,则不会显示相应的元素


对不起,解释得不好,但菲尔德会为自己说话的,谢谢

我简化了你的点击功能

$(document).ready( function () {
   $('.search-option input').click(function(){
      var inputs = $(".search-option input");
      var products = $(".ni-search");

      products.each(function(i){
         if(inputs.eq(i).is(":checked")){
            $(this).show();
         }else{
            $(this).hide();
         }
      });
      if(products.length == inputs.not(":checked").length){
          products.show();  
      }
   });
});​
这假设您的结果都在同一个包装器中,并且您的复选框也都在同一个包装器中


我简化了你的点击功能

$(document).ready( function () {
   $('.search-option input').click(function(){
      var inputs = $(".search-option input");
      var products = $(".ni-search");

      products.each(function(i){
         if(inputs.eq(i).is(":checked")){
            $(this).show();
         }else{
            $(this).hide();
         }
      });
      if(products.length == inputs.not(":checked").length){
          products.show();  
      }
   });
});​
这假设您的结果都在同一个包装器中,并且您的复选框也都在同一个包装器中


正如上面优秀帖子(mrtsherman,ahren)的补充一样,else语句的最后一行导致了这个问题。快速而肮脏的解决方案是:

    //$(".ni-search"+checks).show(); //this was the offending line

    $("#cat_"+$(this).attr('id')).hide(); //instead of showing everything just hide what was clicked

我也在你的小提琴中成功地运行了这个程序。

正如上面的优秀帖子(mrtsherman,ahren)的补充一样,你else语句的最后一行导致了这个问题。快速而肮脏的解决方案是:

    //$(".ni-search"+checks).show(); //this was the offending line

    $("#cat_"+$(this).attr('id')).hide(); //instead of showing everything just hide what was clicked

我也在你的小提琴中成功地运行了这个脚本。

这是你脚本的另一个简化版本


这是脚本的另一个简化版本


很好,我的第一个想法是甚至不去尝试和找出为什么他的代码不工作,因为我知道它可以做得更简单。我相信他会很感激能给出一个答案,说明他和自己的代码有多么接近!如果没有选择任何项目,我将如何使所有项目返回?很好,我的第一个想法是甚至不去尝试和找出为什么他的代码不工作,因为我知道它可以做得更简单。我相信他会很感激能给出一个答案,说明他和自己的代码有多么接近!如果没有选择任何项目,我将如何使所有项目返回?简单得多,但我无法让它在我的页面上工作(它有点复杂),但在小提琴中工作得很好。我选择保留我的代码并使用@Jeffrey Hogan建议的修复程序。谢谢简单得多,但我无法让它在我的页面上工作(它有点复杂),但在小提琴中工作得很好。我选择保留我的代码并使用@Jeffrey Hogan建议的修复程序。谢谢