javascript - 数据表不能使用按列排序或在内容中搜索

标签 javascript datatables

我在 javascript 函数中创建了一个数据表,当我这样做时,“搜索”过滤器没有出现,列的排序也不起作用。实际上,看起来 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(),它工作正常。 我需要创建一个数据表,就像我在上面的代码片段中尝试做的那样。

你能帮我弄清楚我做错了什么吗?非常感谢。

最佳答案

您正在初始化您的数据表,然后用另一个表替换它。创建动态表后,您需要 初始化数据表。将您的 $(document).ready 函数更改为:

$(document).ready(function () {
  fillDataTable();
  $('#example').DataTable();
});

附言。您缺少对 jQuery 和 jQuery DataTable 库的引用。

关于javascript - 数据表不能使用按列排序或在内容中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53765530/

相关文章:

javascript - 如何过滤数据表中的日期?

javascript - 包含表格的 div 上的框阴影问题(高度问题)

javascript - 在子悬停时更改父 css

javascript - 比较 JavaScript 中的两个日期(字符串)不起作用

javascript - 对 HTTPS 地址的 XMLHTTP POST 请求是否使用任何加密?

javascript - Sigma.js学习与实例

javascript - VisualForce页面中的DataTables,将swfPath设置为静态资源

javascript - 将选项卡焦点保持在 jQuery 对话框中

javascript - jQuery 数据表 - 选择不起作用

javascript - 具有自定义搜索字段的列可见性