Javascript 多表过滤器

Javascript 多表过滤器,javascript,jquery,Javascript,Jquery,我想在此表中同时筛选多次。当我输入$table.find('tbody tr:visible')时就会发生这种情况code,但当我在过滤部分使用退格时,它会被破坏,因为它只在可见的TR中搜索。(原始:$table.find('tbody TR');) 我怎样才能解决这个问题 $(文档).ready(函数(){ $('.filterable.btn filter')。单击(函数(){ var$panel=$(this).parents('.filterable'), $filters=$pane

我想在此表中同时筛选多次。当我输入
$table.find('tbody tr:visible')时就会发生这种情况
code,但当我在过滤部分使用退格时,它会被破坏,因为它只在可见的TR中搜索。(原始:
$table.find('tbody TR');

我怎样才能解决这个问题

$(文档).ready(函数(){
$('.filterable.btn filter')。单击(函数(){
var$panel=$(this).parents('.filterable'),
$filters=$panel.find('.filters-input'),
$tbody=$panel.find('.table-tbody');
if($filters.prop('disabled')==true){
$filters.prop('disabled',false);
$filters.first().focus();
}否则{
$filters.val(“”).prop('disabled',true);
$tbody.find('.no result').remove();
$tbody.find('tr').show();
}
});
$('.filterable.filters输入').keyup(函数(e){
/*忽略选项卡键*/
var代码=e.keyCode | | e.which;
如果(代码=='9')返回;
/*有用的DOM数据和选择器*/
变量$input=$(此),
inputContent=$input.val().toLowerCase(),
$panel=$input.parents('.filterable'),
column=$panel.find('.filters-th').index($input.parents('th')),
$table=$panel.find('.table'),
$rows=$table.find('tbody tr');
/*有史以来最脏的过滤函数;)*/
var$filteredRows=$rows.filter(函数(){
var value=$(this.find('td').eq(column.text().toLowerCase();
返回值.indexOf(inputContent)=-1;
});
/*如果存在,则清除以前的结果*/
$table.find('tbody.no result').remove();
/*显示所有行,隐藏已筛选的行(在演示!xD之外不要这样做)*/
$rows.show();
$filteredRows.hide();
/*如果筛选了所有行,则不预加结果行*/
if($filteredRows.length==$rows.length){
$table.find('tbody').prepend($('No result found'));
}
});
});

由于占位符属性,列标题与过滤器输入合并

受此启发

使用者 滤器 1. 马科斯 奥托亚斯 @mdo 2. 雅各布斯 桑托纳斯 @肥 3. 拉里 鸟 @推特
jquery.Datatables
可以使用,它具有与搜索、排序和加载数据相关的各种功能

该站点有许多示例可用于开始加载数据和设置表格:

以下代码段可用于将表配置为datatable:

$(document).ready(function() {
    $('#example').DataTable();
} );

看看我编辑的问题和小提琴片段中的控制台。关于脚本的顺序,您有一个错误。不幸的是,我不得不使用这个,因为表中有许多函数,并且有打开和关闭的区域。您的意思是,您可以动态添加、删除行,也可以切换列,还可以编辑,选择或突出显示行或多行我理解你的意思,但我必须这样做。