我正在使用javascript函数创建DataTable,当我这样做时,“搜索”过滤器不会出现,并且列的排序不起作用。实际上,看起来CSS不再起作用了。
这是我的代码:
<html>
<head>
<link href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css" rel="stylesheet"/>
<link href="https://cdn.datatables.net/select/1.2.7/css/select.dataTables.min.css" rel="stylesheet"/>
</head>
<body>
<div id="area-panel-content" class="col-md-12">
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th>Repository</th>
<th>Date</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr><td>AAA</td><td>AAA</td><td>AAA</td></tr>
<tr><td>BBB</td><td>BBB</td><td>BBB</td></tr>
</tbody>
</table>
</div>
<script type="text/javascript" charset="utf8" src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/select/1.2.7/js/dataTables.select.min.js"></script>
<script>
$(document).ready(function() {
var currentTable = $('#example').DataTable();
fillDataTable();
} );
function fillDataTable() {
var folders = "";
for(var i = 0; i < 5; i++) {
folders = folders+
'<tr><td><i class="fa fa-folder" aria-hidden="true"></i>Event'+i+'</td><td>25/12/2018</td><td></td></tr>';
}
var tableStart = '<table id="example" class="display" style="width:100%"><thead><tr><th class="sorting" aria-sort="ascending">Repository</th><th class="sorting" aria-label="Column 2: activate to sort column ascending">Date</th><th>Action</th></tr></thead><tbody>';
var tableEnd = '</tbody></table>';
$("#area-panel-content").replaceWith('<div id="area-panel-content" class="col-md-12">'+tableStart+folders+tableEnd+'</div>');
}
</script>
</body>
</html>
如果您对函数fillDataTable()进行注释,则可以正常工作。 我需要创建一个DataTable,就像我试图在代码段上方那样。
您能帮我了解我在做什么错吗?非常感谢。
答案 0 :(得分:1)
您正在初始化数据表,然后将其替换为另一个表。创建动态表后,需要 初始化数据表。将您的$(document).ready
函数更改为:
$(document).ready(function () {
fillDataTable();
$('#example').DataTable();
});
Ps。您缺少对jQuery和jQuery DataTable库的引用。