You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:使用JQuery实现输入框+下拉框的表格行多条件筛选

多条件表格筛选功能修复

现有一套带输入框和下拉框的筛选控件,需要实现表格行的多条件筛选逻辑:当所有筛选条件都满足时,对应表格行背景设为黄色,否则恢复透明。原jQuery代码无法正常实现该功能,以下是问题分析和修复方案:

原代码存在的问题

  • match变量在each循环外初始化,导致不同行的筛选状态互相干扰
  • PriceNo筛选错误定位到a标签,实际应获取对应下拉框的选中项文本
  • yellow变量未定义,缺少具体颜色值
  • 部分if语句缺少闭合括号,存在语法错误
  • $groupProcessingTable变量未提前获取表格元素,导致后续操作失效

修正后的jQuery代码

// 提前获取表格元素
var $groupProcessingTable = $('.table-order-items');
// 定义黄色背景色值
var yellow = 'rgb(255, 213, 128)';

// 绑定筛选控件的键盘输入和选择事件
$('[id^=filter-by]').on('keyup change', function () {
    // 获取各筛选控件的当前值并做格式化处理
    var nameValue = $.trim($('#filter-by-name').val()).toLowerCase(); 
    var supplierValue = $.trim($('#filter-by-supplier').val()).toLowerCase(); 
    var fromdateValue = parseInt($('#filter-by-fromdate').val()); 
    var todateValue = parseInt($('#filter-by-todate').val()); 
    var pricenoValue = $('#filter-by-priceno').find(":selected").text().toLowerCase();

    // 遍历表格每一行进行条件匹配
    $groupProcessingTable.find('tbody tr').each(function () {
        // 每行初始化匹配状态为true
        var match = true;
        
        // 名称筛选条件判断
        if (nameValue !== "") {
            if (!($(this).find('td:first a').text().toLowerCase().includes(nameValue))) {
                match = false;
            }
        }
        // 供应商筛选条件判断
        if (supplierValue !== "") {
            if (!($(this).find('td:eq(1) option:selected').text().toLowerCase().includes(supplierValue))) {
                match = false;               
            }
        }
        // 起始日期筛选条件判断
        if (!isNaN(fromdateValue)) {
            var rowFromDate = parseInt($(this).find('td:eq(2) input[name^=product-delivery-from]').val());
            if (!(rowFromDate >= fromdateValue)) {
                match = false;
            }
        }
        // 结束日期筛选条件判断
        if (!isNaN(todateValue)) {
            var rowToDate = parseInt($(this).find('td:eq(3) input[name^=product-delivery-to]').val());
            if (!(rowToDate <= todateValue)) {
                match = false;
            }
        }
        // PriceNo筛选条件判断
        if (pricenoValue !== "") {
            if (!($(this).find('td:eq(4) option:selected').text().toLowerCase().includes(pricenoValue))) {
                match = false;
            }
        }
        // 根据匹配结果设置行背景色
        $(this).css("background-color", match ? yellow : '');
    });
});

内容的提问来源于stack exchange,提问作者orangecoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 23:25:19