HTML table header 使用 jQuery 数据表时使用 colspan
HTML table header with colspan when using jQuery DataTables
我尝试使用 jQuery DataTables 插件,但失败并在第 256 行(缩小版)显示消息 c is undefined
。
我的 table 看起来像这样:
<table class="datatable">
<thead>
<th>
<td>name</td>
<td colspan="3">actions</td>
</th>
</thead>
<tbody>
<tr>
<td>Foo</td>
<td>Detail</td>
<td>Edit</td>
<td>Remove</td>
</tr>
</tbody>
</table>
我是这样绑定插件的:
$(document).ready(function() {
$('.datatable').DataTable({
responsive: true
});
});
当我删除 colspan 时它工作正常(将所有操作放在一列中)- 最低 header 级别必须遵守规则 "one header cell for one table column"
CAUSE
它不起作用,因为 DataTables 要求每列 header 中至少有一个唯一的单元格(即没有 colspan
的单元格)。
SOLUTION
您需要为每个操作添加单独的单元格,如果需要,您也可以删除这些单元格的标题。
重要:请注意,每一列必须至少有一个唯一的单元格(即没有 colspan
的单元格),以便 DataTables 可以使用该单元格来检测列和用它来申请订购。
有关详细信息,请参阅 Complex headers with column visibility。
DEMO
$(document).ready( function () {
var table = $('#example').DataTable({
columnDefs: [
{ targets: [1,2,3], orderable: false, searchable: false }
]
});
} );
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>jQuery DataTables</title>
<link href="//cdn.datatables.net/1.10.7/css/jquery.dataTables.min.css" rel="stylesheet" type="text/css" />
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js"></script>
</head>
<body>
<table id="example" class="display">
<thead>
<tr>
<th rowspan="2">Name</th>
<th colspan="3">Actions</th>
</tr>
<tr>
<th>Detail</th>
<th>Edit</th>
<th>Remove</th>
</tr>
</thead>
<tbody>
<tr>
<td>Foo</td>
<td>Detail</td>
<td>Edit</td>
<td>Remove</td>
</tr>
</tbody>
</table>
</body>
</html>
我尝试使用 jQuery DataTables 插件,但失败并在第 256 行(缩小版)显示消息 c is undefined
。
我的 table 看起来像这样:
<table class="datatable">
<thead>
<th>
<td>name</td>
<td colspan="3">actions</td>
</th>
</thead>
<tbody>
<tr>
<td>Foo</td>
<td>Detail</td>
<td>Edit</td>
<td>Remove</td>
</tr>
</tbody>
</table>
我是这样绑定插件的:
$(document).ready(function() {
$('.datatable').DataTable({
responsive: true
});
});
当我删除 colspan 时它工作正常(将所有操作放在一列中)- 最低 header 级别必须遵守规则 "one header cell for one table column"
CAUSE
它不起作用,因为 DataTables 要求每列 header 中至少有一个唯一的单元格(即没有 colspan
的单元格)。
SOLUTION
您需要为每个操作添加单独的单元格,如果需要,您也可以删除这些单元格的标题。
重要:请注意,每一列必须至少有一个唯一的单元格(即没有 colspan
的单元格),以便 DataTables 可以使用该单元格来检测列和用它来申请订购。
有关详细信息,请参阅 Complex headers with column visibility。
DEMO
$(document).ready( function () {
var table = $('#example').DataTable({
columnDefs: [
{ targets: [1,2,3], orderable: false, searchable: false }
]
});
} );
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>jQuery DataTables</title>
<link href="//cdn.datatables.net/1.10.7/css/jquery.dataTables.min.css" rel="stylesheet" type="text/css" />
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js"></script>
</head>
<body>
<table id="example" class="display">
<thead>
<tr>
<th rowspan="2">Name</th>
<th colspan="3">Actions</th>
</tr>
<tr>
<th>Detail</th>
<th>Edit</th>
<th>Remove</th>
</tr>
</thead>
<tbody>
<tr>
<td>Foo</td>
<td>Detail</td>
<td>Edit</td>
<td>Remove</td>
</tr>
</tbody>
</table>
</body>
</html>