javascript 如何使两个过滤器在jquery中同时工作

hts6caw3  于 2022-12-28  发布在  Java
关注(0)|答案(1)|浏览(125)

我应该让我的两个过滤系统,一个用于按钮,一个用于文本输入,一起工作。有人知道怎么做吗?

$(function() {
        $('input[name="test"]').on('change', function(a, b) {
        value1 = this.value;
        console.log(value1)
        $('#elenco .cliente').hide();
        if (value1 == 'All') {
            $('#elenco .cliente').show();
            dom = $('#elenco .cliente')
        }
        if (value1 == 'PROD') {
            $('#elenco .cliente[value="PROD"]').show();
            dom = $('#elenco .cliente[value="PROD"]')
        }
        if (value1 == 'TEST') {
            $('#elenco .cliente[value="TEST"]').show();
            dom = $('#elenco .cliente[value="TEST"]')
           
        }
        });
    });

    $(document).ready(function(){
        $("#sito").on("keyup", function() {
            var value = $(this).val().toLowerCase();
            //console.log(this)
            $("#elenco .cliente .desc").filter(function() {
            $(this).parent().toggle($(this).text().toLowerCase().indexOf(value) > -1)
            });
        });
    });
ohtdti5x

ohtdti5x1#

尝试在脚本的顶部声明dom变量。使用它来存储对第一个过滤函数显示的元素的引用。然后第二个过滤函数使用dom变量来仅对元素应用文本过滤器。类似这样的操作应该会起作用

$(function() {
  var dom = $('#elenco .cliente');  // Declare a variable to store the elements being displayed
  $('input[name="test"]').on('change', function(a, b) {
    value1 = this.value;
    console.log(value1)
    $('#elenco .cliente').hide();
    if (value1 == 'All') {
      $('#elenco .cliente').show();
      dom = $('#elenco .cliente'); // Store the elements being displayed
    }
    if (value1 == 'PROD') {
      $('#elenco .cliente[value="PROD"]').show();
      dom = $('#elenco .cliente[value="PROD"]'); // Store the elements being displayed
    }
    if (value1 == 'TEST') {
      $('#elenco .cliente[value="TEST"]').show();
      dom = $('#elenco .cliente[value="TEST"]'); // Store the elements being displayed
    }
  });

  $(document).ready(function() {
    $("#sito").on("keyup", function() {
      var value = $(this).val().toLowerCase();
      // Apply the text filter only to the elements being displayed
      dom.find('.desc').filter(function() {
        $(this).parent().toggle($(this).text().toLowerCase().indexOf(value) > -1);
      });
    });
  });
});

相关问题