如何移除jQuery DataTables插件添加的搜索栏和页脚?

324

我正在使用jQuery DataTables

我想要移除默认添加到表格中的搜索栏和底部显示可见行数的页脚。基本上,我只想使用这个插件进行排序。能否做到这一点?


您可以按照此处的描述有效地使用sDom - https://dev59.com/ulQJ5IYBdhLWcg3wbFSx#53885264 - Tushar Walzade
1
使用 dom: 'lrtip' 选项 - Taufik Nur Rahmanda
23个回答

668
对于DataTables版本大于等于1.10,请使用以下代码:
$('table').dataTable({searching: false, paging: false, info: false});

如果你仍然想要使用这个插件的.search()功能,你需要使用dom设置来隐藏搜索栏的html代码:

$('table').dataTable({dom: 'lrt'});

默认值为lfrtip<"H"lfr>t<"F"ip>(当jQueryUI为true时),f字符表示dom中的过滤器(搜索)html,ip表示信息和分页(页脚)。

对于DataTables <1.10,请使用:

$('table').dataTable({bFilter: false, bInfo: false});

或者使用纯CSS:

.dataTables_filter, .dataTables_info { display: none; }

7
虽然@antpaw的评论很好,并且在大多数情况下似乎有效,但如果每列进行过滤,就像在此示例中:http://datatables.net/release-datatables/extras/FixedColumns/col_filter.html ,它就无法起作用。请注意! - Janis Peisenieks
15
我不明白为什么这会被接受,因为它没有回答问题。问题是移除搜索栏和页脚,而不是完全禁用搜索功能。 - user1563544
1
要完全删除页脚,您必须设置 paging:falseinfo:false,而不仅仅是 paging:false - Mike D3ViD Tyson
1
除了 CSS 技巧之外,有没有办法只隐藏搜索栏而不禁用其功能?(补充 @user1563544 的评论) - vignz.pie
1
错误答案 - searching: false 会完全禁用 DT 的 search() 函数。 - Umair Ayub
显示剩余7条评论

93

@Eric 谢谢,它对我有用,但我只想显示“bPaginate”,不想显示“binfo”,如果我设置“bInfo”= false 和 “bPaginate”= true,那么两者都会显示,我该如何实现? - amit
在最新版本的DataTables中,只需使用 {paging: false, info: false} - josemmo

47

3
这应该添加到antpaw的答案中。这有效地隐藏了过滤器和信息占位符div,在传递"bFilter": false, "bInfo": false时仍然存在。 - tibc-dev
这将删除页脚中的分页。我认为这并不是一个好的做法。 - Anirudh
3
现在它被称为“dom”,您可以使用此选项控制更多内容。请参阅https://datatables.net/reference/option/dom - unkreativ
1
这实际上是正确的答案。其他涉及 CSS 和 JS 调整的答案都是 hack。如果您想正确使用 DataTables,就应该这样做。例如,如果您想显示所有细节(分页、页面长度等),但不包括搜索框,您可以添加一个 dom 属性,并将其值设置为 ltipr,请参见 https://datatables.net/reference/option/dom。 - onefootswill

27
如果您正在使用自定义筛选器,则可能希望隐藏搜索框但仍要启用筛选功能,因此bFilter:false不是解决方法。可以使用dom:'lrtp'代替,默认值为'lfrtip'。文档:https://datatables.net/reference/option/dom

12
var table = $("#datatable").DataTable({
   "paging": false,
   "ordering": false,
   "searching": false
});

7

一种简单而快速的方法是使用jQuery或CSS查找页脚的类并将其隐藏:

$(".dataTables_info").hide();

5
如@Scott Stafford所说,sDOM是显示、隐藏或重新定位组成DataTables的元素最合适的属性。我认为sDOM现在已经过时了,随着实际补丁的更新,该属性现在变成了dom
此属性还允许将一些类或ID设置给一个元素,以便更轻松地进行样式设置。
请查看官方文档:https://datatables.net/reference/option/dom 下面的示例只会显示表格:
$('#myTable').DataTable({
    "dom": 't'
});

4

此答案不涉及任何文档链接,并且您没有提供有效的答案。 - elad silver

4
这可以通过简单地更改配置来完成:
$('table').dataTable({
      paging: false, 
      info: false
 });

但是如果想要隐藏空的页脚,可以使用以下代码:

 $('table').dataTable({
      paging: false, 
      info: false,

      //add these config to remove empty header
      "bJQueryUI": true,
      "sDom": 'lfrtip'

});

4

如果您正在使用Themeroller:

.dataTables_wrapper .fg-toolbar { display: none; }

+1 谢谢,这指引了我正确的方向。我不想隐藏页眉,只想隐藏页脚。ui-corner-bl和ui-corner-br类仅应用于页脚,因此我使用其中之一来获取页脚包装器........ $(".ui-corner-bl").hide(); - Kevbo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接