Javascript jQuery表筛选器排序不正确
我一直在尝试使用我在上找到的以下内容(在本例中对其进行了一些修改)。甚至不确定我是否正确发布了此代码。。。我想最好只是看看小提琴Javascript jQuery表筛选器排序不正确,javascript,jquery,html,Javascript,Jquery,Html,我一直在尝试使用我在上找到的以下内容(在本例中对其进行了一些修改)。甚至不确定我是否正确发布了此代码。。。我想最好只是看看小提琴 { filters[col] = text; $(table).find('tr').each(function(i){ $(this).data('passed', true); }); for(index in filters) { if(filters[index] !== 'any')
{
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分钟筛选器时,它只加载值为5分钟的表列?我在另一把小提琴上看到过类似的东西(我现在找不到),我认为它被称为正则表达式,而不是索引。。。这是为了表中的搜索函数,但它起作用了
如果您需要更多信息或更好的描述,请告诉我。这里有一个更简单的方法,它使用
filter()
和eq()
,只循环行一次
function apply_filter(table, col, text) {
var $rows = $(table).find('tr');
if (text === 'any') {
$rows.show();
} else {
// hide all rows then filter the ones to show
$rows.hide().filter(function() {
return $(this).children().eq(col - 1).text().trim() === text;
}).show();
}
}
这里有一个简单得多的方法,它使用
过滤器()
和eq()
,只循环行一次
function apply_filter(table, col, text) {
var $rows = $(table).find('tr');
if (text === 'any') {
$rows.show();
} else {
// hide all rows then filter the ones to show
$rows.hide().filter(function() {
return $(this).children().eq(col - 1).text().trim() === text;
}).show();
}
}
谢谢你,查理,这正是我所需要的!非常感谢。您好@charlietfl上述代码如前所述工作完美,但我已经到了过滤器太多的地步。假设我想将一个筛选器分组为包含2个值,例如,当您单击按钮时,全部显示“5分钟”和“10分钟”值,而不是仅显示“5分钟”。修改确定筛选器内返回内容的逻辑()。可以创建选择数组遗憾的是,我对编码的基本了解还不多。一般来说,我为了完成这项工作而拼凑起来的零碎东西充其量是可笑的,甚至不能让数组正常工作。我会继续寻找和尝试。谢谢你的建议。谢谢你,查理,这正是我所需要的!非常感谢。您好@charlietfl上述代码如前所述工作完美,但我已经到了过滤器太多的地步。假设我想将一个筛选器分组为包含2个值,例如,当您单击按钮时,全部显示“5分钟”和“10分钟”值,而不是仅显示“5分钟”。修改确定筛选器内返回内容的逻辑()。可以创建选择数组遗憾的是,我对编码的基本了解还不多。一般来说,我为了完成这项工作而拼凑起来的零碎东西充其量是可笑的,甚至不能让数组正常工作。我会继续寻找和尝试。谢谢你的建议。