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