Datatables简单使用

貌似很久没有更新博客了,实在太忙。。。
最近 寒风 用到一个 jquery 分页 插件 ,刚拿到手时完全摸不着头脑,网上的中文资料几乎木有,于是花了点时间研究了一下,将以下分享出来,可以说是一个简单的 datatables 的中文手册了。可能文章会很长,但都是 寒风 一个字一个字打出来的,都经过实践了滴,嘿嘿~
以下一些参数等基本是按照官方示例来的,比较多,还木有完全弄完,以后有机会再更新。

简介:Datatables是一款强大的jquery分页插件,不但具备分页功能,还可进行数据搜索过滤、排序等功能。
当前最新版本:v1.9.0
下载地址:

http://www.datatables.net/download/

http://115.com/file/dp5u9szo

寒风提醒:下载后,将media文件夹里面的css,images,js文件夹拷贝到你的网站即可。接下来引入以下内容:

1
2
3
4
5
6
7
8
9
10
11
[html]  view plain  copy
  1. <style type="text/css" title="currentStyle">  
  2.     @import "./style/data<span class="wp_keywordlink_affiliate"><a href="http://www.coolwinds.cn/article/tag/table" title="查看 table 中的全部文章" target="_blank">table</a></span>/css/demo_page.css";  
  3.     @import "./style/data<span class="wp_keywordlink_affiliate"><a href="http://www.coolwinds.cn/article/tag/table" title="查看 table 中的全部文章" target="_blank">table</a></span>/css/demo_table.css";  
  4. </style>  
  5. <script type="text/javascript" src="./style/datatable/js/jquery.js"></script>  
  6. <script type="text/javascript" src="./style/datatable/js/jquery.dataTables.min.js"></script>  
  7. <script type="text/javascript">  
  8.     $(document).ready(function() {  
  9.         $('#example').dataTable();//其中example为table的id,table中必须有thead!  
  10.     } );  
  11. </script>  

1. datatables简单示例

http://www.datatables.net/release-datatables/examples/basic_init/zero_config.html

1
2
3
[html]  view plain  copy
  1. $(document).ready(function() {  
  2. $('#example').dataTable();  
  3. } );  

这个是不进行参数配置,效果如下图:

2. 进行基本参数配置

http://www.datatables.net/release-datatables/examples/basic_init/filter_only.html

1
2
3
4
5
6
[html]  view plain  copy
  1. "bPaginate": true, //翻页功能  
  2. "bLengthChange": true, //改变每页显示数据数量  
  3. "bFilter": true, //过滤功能  
  4. "bSort": true, //排序功能  
  5. "bInfo": true,//页脚信息  
  6. "bAutoWidth": true,//自动宽度  

寒风说明:以上参数配置实现的显示效果和第一个是一样的。
3. 默认排序设置,aaSorting

http://www.datatables.net/release-datatables/examples/basic_init/table_sorting.html

1
[html]  view plain  copy
  1. "aaSorting": [[ 4, "desc" ]],//设置第5个元素为默认排序  

4. 多个datatable

http://www.datatables.net/release-datatables/examples/basic_init/multiple_tables.html

寒风说明:
将表单id改为class:
初始化:

1
[html]  view plain  copy
  1. $('.example').dataTable(  

即可。
5. 隐藏部分列的内容,aoColumnDefs

http://www.datatables.net/release-datatables/examples/basic_init/hidden_columns.html

1
2
3
4
[html]  view plain  copy
  1. "aoColumnDefs": [  
  2. { "bSearchable": false, "bVisible": false, "aTargets": [ 2 ] },//bSearchable:是否可搜索;bVisible:是否可见;aTargets:哪一列  
  3. { "bVisible": false, "aTargets": [ 3 ] }//  
  4. ]  

6. 修改表单各元素显示位置

http://www.datatables.net/release-datatables/examples/basic_init/dom.html

1
[html]  view plain  copy
  1. "sDom": '<"top"i>rt<"bottom"flp><"clear">'  

表示的html为:

1
2
3
4
5
6
7
8
9
10
11
12
13
[html]  view plain  copy
  1. <div class="top">这里显示 当前条数,总共条数</div>  
  2. 这里显示 请求中的提示信息,表单内容  
  3. <div class="bottom">这里显示 搜索框,每页数量选择,翻页按钮</div>  
  4. <div class="clear"></div>  
  5.    
  6. //l - 每页数量选择select  
  7. //f – 搜索框search  
  8. //t – 表单内容table  
  9. //i – 当前条数,总共条数information  
  10. //p – 翻页按钮pagination  
  11. //r – 请求中的提示信息  
  12. //< 和 > – 一个div的开始与结束  
  13. //<"class"> – class为div的class名称  

7. 保存当前页面信息为cookie,默认关闭

http://www.datatables.net/release-datatables/examples/basic_init/state_save.html

1
[html]  view plain  copy
  1. "bStateSave": true  

如果用户关闭页面后重新打开该页面,该列表会和关闭前的状态完全一样(长度,过滤,分页和排序)

8. 修改默认分页显示样式

http://www.datatables.net/release-datatables/examples/basic_init/alt_pagination.html

1
[html]  view plain  copy
  1. "sPaginationType": "full_numbers"  

9. x轴宽度限制

http://www.datatables.net/release-datatables/examples/basic_init/scroll_x.html

1
2
3
[html]  view plain  copy
  1. "sScrollX": "100%",  
  2. "sScrollXInner": "110%",  
  3. "bScrollCollapse": true  

用的很少

10. y轴高度限制

http://www.datatables.net/release-datatables/examples/basic_init/scroll_y.html

1
2
[html]  view plain  copy
  1. "sScrollY": "200px",  
  2. "bPaginate": false //该参数为是否显示分页,如果设置为true貌似就没什么意义了  

11. x轴、y轴均限制

http://www.datatables.net/release-datatables/examples/basic_init/scroll_xy.html

1
2
3
[html]  view plain  copy
  1. "sScrollY": 200,  
  2. "sScrollX": "100%",  
  3. "sScrollXInner": "110%"  

12. 应用主题

http://www.datatables.net/release-datatables/examples/basic_init/themes.html

需要拷贝examples/examples_support/themes文件夹到style/datatable里面

1
[html]  view plain  copy
  1. @import "./style/datatable/css/demo_table.css";  

替换为:

1
2
3
[html]  view plain  copy
  1. @import "./style/datatable/css/demo_table_jui.css";  
  2. 主题一:  
  3. 引入<pre lang="html" line="1">@import "./style/datatable/themes/smoothness/jquery-ui-1.8.4.custom.css";  


主题二:
引入

1
[html]  view plain  copy
  1. @import "./style/datatable/themes/ui-lightness/jquery-ui-1.8.4.custom.css";  

主题二是橘色系的,木有第一个smoothness好看,这里就不截图了!

13. 语言设置

http://www.datatables.net/release-datatables/examples/basic_init/language.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[html]  view plain  copy
  1. "oLanguage": {  
  2. "sLengthMenu": "每页显示 _MENU_条",  
  3. "sZeroRecords": "没有找到符合条件的数据",  
  4. "sProcessing": "&lt;img src=’./loading.gif’ /&gt;",  
  5. "sInfo": "当前第 _START_ - _END_ 条 共计 _TOTAL_ 条",  
  6. "sInfoEmpty": "木有记录",  
  7. "sInfoFiltered": "(从 _MAX_ 条记录中过滤)",  
  8. "sSearch": "搜索:",  
  9. "oPaginate": {  
  10. "sFirst": "首页",  
  11. "sPrevious": "前一页",  
  12. "sNext": "后一页",  
  13. "sLast": "尾页"  
  14. }  
  15. }  

也可以直接指定语言包,txt文件:

1
[html]  view plain  copy
  1. "sUrl": "media/language/de_DE.txt" //文件格式和上面一样  

14. 各列数据input过滤

http://www.datatables.net/release-datatables/examples/api/multi_filter.html

最前面加入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[html]  view plain  copy
  1. var asInitVals = new Array();  
  2. $('#example').dataTable 修改为:var oTable =$('#example').dataTable  
  3. 加入:  
  4. /*过滤代码开始*/  
  5. $("tfoot input").keyup( function () {  
  6. oTable.fnFilter( this.value, $("tfoot input").index(this) );  
  7. } );  
  8. $("tfoot input").each( function (i) {  
  9. asInitVals[i] = this.value;  
  10. } );  
  11. $("tfoot input").focus( function () {  
  12. if ( this.className == "search_init" )  
  13. {  
  14. this.className = "";  
  15. this.value = "";  
  16. }  
  17. } );  
  18. $("tfoot input").blur( function (i) {  
  19. if ( this.value == "" )  
  20. {  
  21. this.className = "search_init";  
  22. this.value = asInitVals[$("tfoot input").index(this)];  
  23. }  
  24. } );  

tfoot里面加入:

1
2
3
4
5
6
7
[html]  view plain  copy
  1. <tr>  
  2.     <th><input type="text" name="search_engine" value="Search engines" class="search_init" /></th>  
  3.     <th><input type="text" name="search_browser" value="Search browsers" class="search_init" /></th>  
  4.     <th><input type="text" name="search_platform" value="Search platforms" class="search_init" /></th>  
  5.     <th><input type="text" name="search_version" value="Search versions" class="search_init" /></th>  
  6.     <th><input type="text" name="search_grade" value="Search grades" class="search_init" /></th>  
  7. </tr>  

15. 每一行点击详情效果

http://www.datatables.net/release-datatables/examples/api/row_details.html

在最前面引入函数:

1
2
3
4
5
6
7
8
9
10
[html]  view plain  copy
  1. /* 构造每一行详情的函数 fnFormatDetails*/  
  2. function fnFormatDetails ( oTable, nTr ){  
  3.     var aData = oTable.fnGetData( nTr );  
  4.     var sOut = '<table cellpadding="6" cellspacing="0" border="0" style="padding-left:50px;">'; //在这里定义要返回的内容  
  5.     sOut += '<tr><td>Rendering engine:</td><td>'+aData[1]+' '+aData[4]+'</td></tr>';  
  6.     sOut += '<tr><td>Link to source:</td><td>Could provide a link here</td></tr>';  
  7.     sOut += '<tr><td>Extra info:</td><td>And any further details here (images etc)</td></tr>';  
  8.     sOut += '</table>';  
  9.     return sOut;  
  10. }  

ready(function)里面开头加入:

1
2
3
4
5
6
7
8
9
10
11
12
[html]  view plain  copy
  1. /*显示每一行详情用_start*/  
  2. var nCloneTh = document.createElement( 'th' );  
  3. var nCloneTd = document.createElement( 'td' );  
  4. nCloneTd.innerHTML = '<img src="./style/datatable/images/details_open.png">';  
  5. nCloneTd.className = "center";  
  6. $('#example thead tr').each( function () {  
  7.     this.insertBefore( nCloneTh, this.childNodes[0] );  
  8. } );  
  9. $('#example tbody tr').each( function () {  
  10.     this.insertBefore(  nCloneTd.cloneNode( true ), this.childNodes[0] );  
  11. } );  
  12. /*显示每一行详情用_end*/  

ready(function)里面末尾加入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[html]  view plain  copy
  1. /*加入展开,收缩每一行详情按钮用*/  
  2. $('#example tbody td img').live('click', function () {  
  3.     var nTr = $(this).parents('tr')[0];  
  4.     if ( oTable.fnIsOpen(nTr) )  
  5.     {  
  6.         this.src = "./style/datatable/images/details_open.png";  
  7.         oTable.fnClose( nTr );  
  8.     }  
  9.     else  
  10.     {  
  11.         this.src = "./style/datatable/images/details_close.png";  
  12.         oTable.fnOpen( nTr, fnFormatDetails(oTable, nTr), 'details' );  
  13.     }  
  14. } );  

值得注意的是,如果加入了tfoot,必须手动在里面加入多一行th!

最后,是寒风写的简单的php+mysql+datatables的简单示例,很多寒风都做了详细的注释说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
[php]  view plain  copy
  1. <span style="color:#000000;font-weight:bold;"><?php</span>   
  2. <span style="color:#000088;">$mysqli</span><span style="color:#339933;">=</span><span style="color:#000000;font-weight:bold;">new</span> mysqli<span style="color:#009900;">(</span><span style="color:#0000ff;">"localhost"</span><span style="color:#339933;">,</span><span style="color:#0000ff;">"root"</span><span style="color:#339933;">,</span><span style="color:#0000ff;">""</span><span style="color:#339933;">,</span><span style="color:#0000ff;">"database"</span><span style="color:#009900;">)</span><span style="color:#339933;">;</span>  
  3. <span style="color:#000088;">$mysqli</span><span style="color:#339933;">-></span><span style="color:#004000;">query</span><span style="color:#009900;">(</span><span style="color:#0000ff;">"SET NAMES utf8"</span><span style="color:#009900;">)</span><span style="color:#339933;">;</span>  
  4.    
  5. <span style="color:#000088;">$result</span><span style="color:#339933;">=</span><span style="color:#000088;">$mysqli</span><span style="color:#339933;">-></span><span style="color:#004000;">query</span><span style="color:#009900;">(</span><span style="color:#0000ff;">"SELECT * FROM `table` limit 500"</span><span style="color:#009900;">)</span><span style="color:#339933;">;</span>  
  6. <span style="color:#b1b100;">if</span><span style="color:#009900;">(</span><span style="color:#339933;">!</span><span style="color:#000088;">$result</span><span style="color:#009900;">)</span><span style="color:#009900;">{</span>  
  7.     <span style="color:#b1b100;">echo</span> <span style="color:#0000ff;">"查询出错!"</span><span style="color:#339933;">;</span>  
  8.     <span style="color:#990000;">exit</span><span style="color:#339933;">;</span>  
  9. <span style="color:#009900;">}</span>  
  10. <span style="color:#000000;font-weight:bold;">?></span>  
  11. <html>  
  12. <head>  
  13. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  14. <style type="text/css" title="currentStyle">  
  15.     @import "./style/datatable/css/demo_page.css";  
  16.     @import "./style/datatable/css/demo_table_jui.css";  
  17.     @import "./style/datatable/themes/smoothness/jquery-ui-1.8.4.custom.css";  
  18.     body{ font-size:12px;}  
  19.     table{ font-size:12px;}  
  20. </style>  
  21. <script type="text/javascript" src="./style/datatable/js/jquery.js"></script>  
  22. <script type="text/javascript" src="./style/datatable/js/jquery.dataTables.min.js"></script>  
  23.    
  24. <script type="text/javascript">  
  25.     /* 构造每一行详情的函数 fnFormatDetails*/  
  26.     function fnFormatDetails ( oTable, nTr ){  
  27.         var aData = oTable.fnGetData( nTr );  
  28.         var sOut = '<table cellpadding="6" cellspacing="0" border="0" style="padding-left:50px;">'//在这里定义要返回的内容  
  29.         sOut += '<tr><td>Rendering engine:</td><td>'+aData[1]+' '+aData[4]+'</td></tr>';  
  30.         sOut += '<tr><td>Link to source:</td><td>Could provide a link here</td></tr>';  
  31.         sOut += '<tr><td>Extra info:</td><td>And any further details here (images etc)</td></tr>';  
  32.         sOut += '</table>';  
  33.         return sOut;  
  34.     }  
  35.    
  36.     /*页面元素加载完成后开始执行*/  
  37.     $(document).ready(function() {  
  38.         /*显示每一行详情用_start*/  
  39.         var nCloneTh = document.createElement( 'th' );  
  40.         var nCloneTd = document.createElement( 'td' );  
  41.         nCloneTd.innerHTML = '<img src="./style/datatable/images/details_open.png">';  
  42.         nCloneTd.className = "center";  
  43.         $('#example thead tr').each( function () {  
  44.             this.insertBefore( nCloneTh, this.childNodes[0] );  
  45.         } );  
  46.         $('#example tbody tr').each( function () {  
  47.             this.insertBefore(  nCloneTd.cloneNode( true ), this.childNodes[0] );  
  48.         } );  
  49.         /*显示每一行详情用_end*/  
  50.    
  51.         var asInitVals = new Array(); //用于每一列搜索过滤  
  52.         var oTable =$('#example').dataTable( //var oTable用于每一列搜索过滤  
  53.             {  
  54.                 /*基本参数设置,以下参数设置和默认效果一致*/  
  55.                 "bPaginate": true, //翻页功能  
  56.                 "bLengthChange": true, //改变每页显示数据数量  
  57.                 "bFilter": true, //过滤功能  
  58.                 "bSort": true, //排序功能  
  59.                 "bInfo": true,//页脚信息  
  60.                 "bAutoWidth": true,//自动宽度  
  61.                 /*默认排序设置*/  
  62.                 "aaSorting": [[ 4, "desc" ]],//设置第5个元素为默认排序  
  63.                 /*默认翻页样式设置*/  
  64.                 "sPaginationType""full_numbers",  
  65.                 /*是否开启主题*/  
  66.                 "bJQueryUI": true,  
  67.                 /*语言设置*/  
  68.                 "oLanguage": {  
  69.                     "sLengthMenu""每页显示 _MENU_条",  
  70.                     "sZeroRecords""没有找到符合条件的数据",  
  71.                     "sProcessing""<img src=’./loading.gif’ />",  
  72.                     "sInfo""当前第 _START_ - _END_ 条 共计 _TOTAL_ 条",  
  73.                     "sInfoEmpty""木有记录",  
  74.                     "sInfoFiltered""(从 _MAX_ 条记录中过滤)",  
  75.                     "sSearch""搜索:",  
  76.                     "oPaginate": {  
  77.                         "sFirst""首页",  
  78.                         "sPrevious""前一页",  
  79.                         "sNext""后一页",  
  80.                         "sLast""尾页"  
  81.                     }  
  82.                 }  
  83.             }  
  84.         );  
  85.    
  86.         /*每一列搜索过滤代码开始*/  
  87.         $("tfoot input").keyup( function () {  
  88.             oTable.fnFilter( this.value, $("tfoot input").index(this) );  
  89.         } );  
  90.         $("tfoot input").each( function (i) {  
  91.             asInitVals[i] = this.value;  
  92.         } );  
  93.         $("tfoot input").focus( function () {  
  94.             if ( this.className == "search_init" )  
  95.             {  
  96.                 this.className = "";  
  97.                 this.value = "";  
  98.             }  
  99.         } );  
  100.         $("tfoot input").blur( function (i) {  
  101.             if ( this.value == "" )  
  102.             {  
  103.                 this.className = "search_init";  
  104.                 this.value = asInitVals[$("tfoot input").index(this)];  
  105.             }  
  106.         } );  
  107.    
  108.         /*加入展开,收缩每一行详情按钮用*/  
  109.         $('#example tbody td img').live('click'function () {  
  110.             var nTr = $(this).parents('tr')[0];  
  111.             if ( oTable.fnIsOpen(nTr) )  
  112.             {  
  113.                 this.src = "./style/datatable/images/details_open.png";  
  114.                 oTable.fnClose( nTr );  
  115.             }  
  116.             else  
  117.             {  
  118.                 this.src = "./style/datatable/images/details_close.png";  
  119.                 oTable.fnOpen( nTr, fnFormatDetails(oTable, nTr), 'details' );  
  120.             }  
  121.         } );  
  122.     } );  
  123. </script>  
  124. </head>  
  125.    
  126. <body>  
  127. <div style=" width:800px; margin:0 auto;">  
  128. <table cellpadding="0" cellspacing="0" class="display" border="0" id="example">  
  129. <thead>  
  130.   <tr>  
  131.     <th>ID</th>  
  132.     <th>时间</th>  
  133.     <th>数量</th>  
  134.     <th>次数</th>  
  135.     <th>消耗</th>  
  136.   </tr>  
  137. </thead>  
  138. <tbody>  
  139. <span style="color:#000000;font-weight:bold;"><?php</span>  
  140. <span style="color:#b1b100;">while</span><span style="color:#009900;">(</span><span style="color:#000088;">$rows</span><span style="color:#339933;">=</span><span style="color:#000088;">$result</span><span style="color:#339933;">-></span><span style="color:#004000;">fetch_assoc</span><span style="color:#009900;">(</span><span style="color:#009900;">)</span><span style="color:#009900;">)</span><span style="color:#009900;">{</span>  
  141.     <span style="color:#000088;">$rows</span><span style="color:#009900;">[</span><span style="color:#0000ff;">'time'</span><span style="color:#009900;">]</span><span style="color:#339933;">=</span><span style="color:#990000;">date</span><span style="color:#009900;">(</span><span style="color:#0000ff;">"Y-m-d H:i:s"</span><span style="color:#339933;">,</span><span style="color:#000088;">$rows</span><span style="color:#009900;">[</span><span style="color:#0000ff;">'time'</span><span style="color:#009900;">]</span><span style="color:#009900;">)</span><span style="color:#339933;">;</span>  
  142.     <span style="color:#b1b100;">echo</span> <span style="color:#0000ff;">"  
  143.     <tr>  
  144.       <td><span style="color:#006699;font-weight:bold;">{$rows['ID']}</span></td>  
  145.       <td><span style="color:#006699;font-weight:bold;">{$rows['time']}</span></td>  
  146.       <td><span style="color:#006699;font-weight:bold;">{$rows['r_num']}</span></td>  
  147.       <td><span style="color:#006699;font-weight:bold;">{$rows['r_times']}</span></td>  
  148.       <td><span style="color:#006699;font-weight:bold;">{$rows['money']}</span></td>  
  149.     </tr>"</span><span style="color:#339933;">;</span>  
  150. <span style="color:#009900;">}</span>  
  151. <span style="color:#000000;font-weight:bold;">?></span>  
  152. </tbody>  
  153. <tfoot>  
  154.   <tr>  
  155.     <th></th>  
  156.     <th>ID</th>  
  157.     <th>时间</th>  
  158.     <th>数量</th>  
  159.     <th>次数</th>  
  160.     <th>消耗</th>  
  161.   </tr>  
  162.     <tr>  
  163.         <th></th>  
  164.         <th><input type="text" name="search_engine" value="Search engines" class="search_init" /></th>  
  165.         <th><input type="text" name="search_browser" value="Search browsers" class="search_init" /></th>  
  166.         <th><input type="text" name="search_platform" value="Search platforms" class="search_init" /></th>  
  167.         <th><input type="text" name="search_version" value="Search versions" class="search_init" /></th>  
  168.         <th><input type="text" name="search_grade" value="Search grades" class="search_init" /></th>  
  169.     </tr>  
  170. </tfoot>  
  171. </table>  
  172. <style>  
  173. #example tr.even:hover {background-color: #ECFFB3;}  
  174. #example tr.even:hover td.sorting_1 {background-color: #DDFF75;}  
  175. #example tr.even:hover td.sorting_2 {background-color: #E7FF9E;}  
  176. #example tr.even:hove3 {background-color: #E2FF89;}  
  177. #example tr.odd:hover {background-color: #E6FF99;}  
  178. #example tr.odd:hover td.sorting_1 {background-color: #D6FF5C;}  
  179. #example tr.odd:hover td.sorting_2 {background-color: #E0FF84;}  
  180. #example tr.odd:hover td.sorting_3 {background-color: #DBFF70;}  
  181. </style>  
  182. </div>  
  183. </body>  
  184. </html>  
实现了上面绝大部分功能!以上php+datatables示例仅适用于数据量少时的情况,数据量大的情况 寒风 以后再专门写博文~

最终效果图如下:

原文链接

文档点击打开链接

官方文档点击打开链接

### 回答1: jQuery中的DataTables是一个非常强大的插件,它可以帮助我们快速地创建一个交互式的数据表格。使用DataTables,我们可以轻松地对数据进行排序、搜索、分页等操作,同时还可以自定义表格的样式和功能。 要使用DataTables,我们需要先引入jQuery和DataTables的相关文件,然后在HTML中创建一个表格,并在JavaScript中初始化DataTables。初始化时,我们需要指定表格的数据源、列的定义、以及一些其他的配置选项。 例如,下面是一个简单的示例: HTML代码: ``` <table id="myTable"> <thead> <tr> <th>ID</th> <th>Name</th> <th>Age</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>John</td> <td>25</td> </tr> <tr> <td>2</td> <td>Jane</td> <td>30</td> </tr> <tr> <td>3</td> <td>Bob</td> <td>20</td> </tr> </tbody> </table> ``` JavaScript代码: ``` $(document).ready(function() { $('#myTable').DataTable({ "paging": true, "searching": true, "ordering": true, "info": true }); }); ``` 在上面的代码中,我们使用了jQuery的ready()方法来确保页面加载完成后再执行初始化操作。然后,我们选择了ID为“myTable”的表格,并调用了DataTable()方法来初始化DataTables。在配置选项中,我们启用了分页、搜索、排序和信息显示等功能。 除了上面的基本用法外,DataTables还提供了许多其他的配置选项和API,可以根据具体的需求进行使用。总的来说,DataTables是一个非常实用的工具,可以帮助我们快速地创建出漂亮、交互式的数据表格。 ### 回答2: jQuery DataTables是一个基于jQuery的表格插件,提供了一系列实用的表格交互功能和强大的数据查询功能。它可以快速、简单地将HTML表格转换为完整的、高度可定制的DataTable。 在使用jQuery DataTables时,需要首先引入jQuery、DataTables样式文件以及DataTables插件文件。然后,使用如下代码初始化DataTable: ```javascript $(document).ready(function() { $('#example').DataTable(); }); ``` 其中,`'#example'`是表格的ID,可以根据实际情况进行修改。初始化完成后,DataTable会自动处理表格,并添加需要的额外功能,如排序、分页以及搜索等。 除此之外,DataTable还提供了许多其他的功能,如列过滤、行高亮、多语言支持、Ajax加载等。可以通过添加配置项进行设置,如: ```javascript $(document).ready(function() { $('#example').DataTable({ "paging": true, //开启分页 "ordering": true, //开启排序 "searching": true //开启搜索 }); }); ``` DataTable还支持自定义插件,可以使用官方提供的插件,也可以开发自己的插件。自定义插件可以实现特定的功能,如显示隐藏列、编辑表格数据等。 总的来说,jQuery DataTables是一个非常实用的表格插件,提供了丰富的功能和灵活的扩展方式。使用DataTable可以大大提高开发效率,减少代码量,快速构建功能强大的数据表格。 ### 回答3: DataTables是一个强大的jQuery表格插件,可以快速地将大量数据转换为交互式表格。该插件允许您添加排序,搜索和分页等高级功能,同时支持服务器端数据源。 使用DataTables只需要简单地在HTML文档中引用两个文件,分别是jquery.dataTables.min.css和jquery.dataTables.min.js,然后在页面DOM元素上调用datatables()方法即可初始化一个数据表。 在使用DataTables之前,需要先将要展示的数据格式化为一个二维数组。接着,可以通过列头对象来定义表格各列的展示形式,例如,可以为表格添加列头的显示文字,设置列数据的排序方式,定义列的宽度等。 在初始化表格时,需要指定一些选项来进一步自定义表格的展示形式。这些选项包括是否开启分页功能、每页显示多少数据、对哪些列开放搜索功能等等。 如果您的数据量比较大,可以使用DataTables提供的服务器端数据源,将数据请求发送到后端。这样可以提高数据加载速度,并且支持更加高级的数据操作,如多表关联数据查询、数据分片等等。 通过以上方式,我们可以轻松地创建一个功能强大的数据展示表格,并灵活地配置其展示形式和功能,从而满足各种业务场景的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值