Datatables-仅应用于某些表的筛选器
Datatables - filter applied to just some tables
在数据表中,有一个过滤函数
$.fn.dataTableExt.afnFiltering.push(function (oSettings, aData, iDataIndex)
过滤所有表。
我有两个表,我只需要将过滤器应用于其中一个表。
如何让Datatables知道我只想过滤table1
并保持table2
原样?
从DataTables创建者中查看此片段。
https://www.datatables.net/forums/discussion/16623/using-fn-datatableext-afnfiltering-push-to-filter-tables
$.fn.dataTableExt.afnFiltering.push(
function(settings, aData, iDataIndex) {
if (settings.nTable.id === 'myTableId') {
// filter example
} else {
// ...
}
}
);
您可以检查要筛选的表的id
。这不是一个官方的解决方案,但它是有效的。
我在其他地方找到了一个帮助我的答案:
https://stackoverflow.com/a/11545376/4896102
刚刚在功能中添加了这个
//array with the tables IDs you want the filtering function to ignore
var allowFilter = ['yourTableId1', 'youTableId2'];
$.fn.dataTableExt.afnFiltering.push(function (oSettings, aData, iDataIndex)
{
// check if current table is part of the allow list
if ($.inArray(oSettings.nTable.getAttribute('id'), allowFilter ) == -1 )
{
// if not table should be ignored
return true;
}
//rest of the code
return false;
});
这个对我很有用,它的优点是可以使用数组,这样在筛选时可以忽略多个表。
您可以使用API的DataTables .search()
和.draw()
方法。请参阅在线文档
var dt1 = $('#table1').DataTable();
dt1.search('search text').draw();
另见工作小提琴
作为附录,我只想提到在1.10+DataTables中,有两种方法可以初始化表:.dataTable()
和.DataTable()
。第二个返回新的API,这就是我上面使用的内容。如果使用第一个,您仍然可以使用$( selector ).dataTable().api()
检索新的API,如在线文档
相关文章:
- 将函数的上下文应用于javascript变量
- 将CSS应用于printWindow.print();在Javascript中
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- 如何将CSS(特别是填充/边距)应用于select下拉菜单的选项或optgroup
- $scope.apply()何时应用于angular
- Javascript非常简单:'阅读更多''显示较少'应用于Wordpress的功能
- 尝试应用于<tr>在ng单击中
- 如何将javascript仅应用于1个表单中的2个表单提交按钮中的1个
- 将脚本应用于Angular 2上的输入
- Json和$scope的角度之间的差异$eval应用于JSON字符串时
- 如何将参数应用于String.prototype.format函数
- 动态地将过滤器应用于 JSON.parse()
- $location更改不适用于ngchange,而是应用于ngclick
- 如何将 :empty 选择器应用于 XML 文档
- 如何仅在文本字段中有值时才将自定义过滤器应用于 ng-repeat
- 如何使用 JavaScript 将样式应用于 CKEditor 中的选定文本
- MongoDB 无法将$addToSet应用于 Meteor JS 中的非数组
- 将类应用于jquery ui对话框
- 将CSS应用于在JavaScript中创建的表-表的位置不正确
- 如果检查了输入,则将类应用于<身体>,没有jQuery