Javascript 如何筛选数据使用按钮上的选择选项单击jQuery
我正在过滤表上的数据 我在视图中有4个选择选项,其中有一些数据。我想根据所有就绪的选项筛选表中的数据 问题是,如果我只更改一个选项,并按下“添加过滤器”按钮,它将正常工作,如果我将使用2-3个选项,过滤器将不工作 HTML:Javascript 如何筛选数据使用按钮上的选择选项单击jQuery,javascript,jquery,Javascript,Jquery,我正在过滤表上的数据 我在视图中有4个选择选项,其中有一些数据。我想根据所有就绪的选项筛选表中的数据 问题是,如果我只更改一个选项,并按下“添加过滤器”按钮,它将正常工作,如果我将使用2-3个选项,过滤器将不工作 HTML: 我创建JSIDLE:每次调用filterData时,基本上都在隐藏所有内容。 建议您在应用过滤器时将该过滤器添加到应用过滤器的数组中,并最终使用过滤器的数组应用过滤器 稍后,您可以删除引用的过滤器,从数组中删除项目,并调用过滤器函数。(取决于您的实施……) 在主作用域启动一
我创建JSIDLE:每次调用filterData时,基本上都在隐藏所有内容。 建议您在应用过滤器时将该过滤器添加到应用过滤器的数组中,并最终使用过滤器的数组应用过滤器 稍后,您可以删除引用的过滤器,从数组中删除项目,并调用过滤器函数。(取决于您的实施……) 在主作用域启动一个空数组,如下所示
let filters = []
使用此功能应用过滤器:
function applyFilter(value) {
if(value)
filters.push(':contains('+value+')')
}
function filterData() {
if (filters.length>0) {
var rows = $("#shelulerData").find("tr").hide();
var currentFilter = null;
filters.forEach(filter => {
if(currentFilter===null) {
currentFilter = rows.filter(filter)
} else
{
currentFilter = currentFilter.filter(filter)
}
})
currentFilter.show()
}
}
然后使用filterData函数:
function applyFilter(value) {
if(value)
filters.push(':contains('+value+')')
}
function filterData() {
if (filters.length>0) {
var rows = $("#shelulerData").find("tr").hide();
var currentFilter = null;
filters.forEach(filter => {
if(currentFilter===null) {
currentFilter = rows.filter(filter)
} else
{
currentFilter = currentFilter.filter(filter)
}
})
currentFilter.show()
}
}
基本上,您可以链接过滤器函数以获得最终过滤器,这就是为什么我将currentFilter
var链接到循环中,并最终应用show()
函数的原因
我尝试了你的解决方案,选择了11和week,如果我选择了一个选项,它会在多个选项中起作用,这是在坏方法的情况下过滤no@Andrew你可以检查最终的解决方案是否符合你的目标,但是,如果我更改选项并点击按钮,它将停止工作如果您想重置过滤器,您可以点击按钮do
filters=[]