【发布时间】:2016-06-14 04:52:24
【问题描述】:
我一直在尝试使用我在fiddle 上找到的以下内容(在此示例中对其进行了一些修改)。甚至不确定我是否正确发布了这段代码......最好只看一下我猜的小提琴。
{
filters[col] = text;
$(table).find('tr').each(function(i){
$(this).data('passed', true);
});
for(index in filters)
{
if(filters[index] !== 'any')
{
$(table).find('tr td:nth-child('+index+')').each(function(i){
if($(this).text().indexOf(filters[index]) > -1 && $(this).parent().data('passed'))
{
$(this).parent().data('passed', true);
}
else
{
$(this).parent().data('passed', false);
}
});
}
}
$(table).find('tr').each(function(i){
if(!$(this).data('passed'))
{
$(this).hide();
}
else
{
$(this).show();
}
});
}
基本上我会有一个表,比如说 100 行,每行都会有一个列,其中包含一个计时器值,例如10 分钟或 15 分钟。当用户单击适当的“自定义过滤器”(例如 10 分钟)时,表格将被过滤为仅显示 10 分钟的所有条目。到目前为止,它 100% 有效。
但是,当用户可能用一位数字过滤任何内容时,例如 5 分钟或 1 分钟,它会丢弃,例如用户过滤 5 分钟的所有内容,现在它会丢弃 5 分钟、15 分钟、45 分钟等。
在示例中,10、15、45 和 59 分钟过滤器可以正常工作。 5 分钟和 9 分钟按钮过滤错误,您将在示例中看到我的意思。
有什么办法可以补救这种情况,这样当点击 5 min 过滤器时,它只会加载值为 5 min 的表列?我在另一个小提琴中看到过类似的东西(我现在找不到)认为它被称为正则表达式而不是 indexOf ...这是用于表中的搜索功能,但它有效。
如果您需要更多信息或更好的描述,请告诉我。
【问题讨论】:
标签: javascript jquery html