gpt4 book ai didi

javascript - 使用多个下拉列表过滤动态表结果

转载 作者:行者123 更新时间:2023-11-29 10:31:36 24 4
gpt4 key购买 nike

我有一个股票表,如下所示:

 Supplier  |  Category  |  ItemID  |  Stock  |  SafetyLimit  |  Status
------------------------------------------------------------------------
ABC | FOOD | 001 | 200 | 140 | Safe
ABC | FOOD | 004 | 50 | 100 | Risky
DEF | NON FOOD | 002 | 150 | 100 | Safe
DEF | FOOD | 006 | 32 | 50 | Risky

我正在尝试根据 vendor (全部、ABC、DEF)、类别(全部、食品、非食品)和状态(安全、风险)为该表创建 3 个过滤器。我找到了这个脚本:

$('select').change(function () {
var current = this.value;
if (current == 'all') {
$('#FilterContainer').find('div.all').show();
} else {
$('#FilterContainer').find('div').hide();
$('#FilterContainer').find('div.all.' + current).show();
}
return false;
});

从此完美工作 JS Fiddle ,但就我而言,我的表不是静态的。它的数据是动态填充的。有人能帮我解决这个问题吗?谢谢。

最佳答案

我不知道你的数据结构,但如果它是动态填充的,你可以这样做。

首先,找到每个过滤器的唯一值:

// Example for suppliers
const suppliers = ['ABC', 'ABC', 'DEF', 'DEF']; // Your suppliers data
const uniqueSuppliers = Array.from(new Set(suppliers)); // ['ABC', 'DEF']
const supplierFilterValues = ['All', ...uniqueSuppliers]; // ['All', 'ABC', 'DEF']

现在用户可以从 supplierFilterValues 中进行选择来过滤数据,例如用户希望仅显示包含“DEF” vendor 的行:

const tableData = [{
supplier: 'ABC',
category: 'FOOD',
itemID: '001',
stock: '200',
safetyLimit: '140',
status: 'Safe',
}, {
supplier: 'DEF',
category: 'NON FOOD',
itemID: '002',
stock: '150',
safetyLimit: '100',
status: 'Safe',
}];
const dataToShow = tableData.filter((item) => item.supplier === 'DEF');

关于javascript - 使用多个下拉列表过滤动态表结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47312528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com