我正在寻找类似问题的答案。在我的项目中,表的内容已清除,并使用原始JavaScript进行了重写,并且DataTables库仅在项目的后面包含。这是在DataTables的isDataTable()-function的帮助下如何工作的精简版本。
resultsTable开头是一个空
我希望这对其他人有帮助。
table.js
export default class Table {
constructor(tableId) {
this.table = document.getElementById(tableId);
}
clearTable() {
this.table.innerHTML = '';
}
writeTable(jsonData) {
// json to html here
const thead = ....;
const tbody = ....;
this.table.appendChild(thead);
this.table.appendChild(tbody);
}
}
main.js
import Table from './modules/table.js';
// My class for writing json to html table
const table = new Table('resultsTable');
// Global variable for holding DataTable-API
let myDataTable
function updateTable(jsonData) {
if ($.fn.DataTable.isDataTable(myDataTable)) {
// Remove DataTable properties, if they are in use
myDataTable.destroy();
// Also empty the html table's content
table.clearTable();
}
// (Re)Writes html thead and tbody to the table element
table.writeTable(jsonData);
// (Re)Set the table to use DataTables API
myDataTable = $('#resultsTable').DataTable();
}