Javascript 如何使用jQuery DataTables重新创建表
我有一个表格,显示正在上载的.csv文件的状态 文件上传表:Javascript 如何使用jQuery DataTables重新创建表,javascript,jquery,datatables,Javascript,Jquery,Datatables,我有一个表格,显示正在上载的.csv文件的状态 文件上传表: FileName FileType FileSize AvailableActions 我还有第二个表,它显示了.csv文件中的数据 我需要向用户提供重置表单的功能,即清除.csv并清除所有数据,destroy()分别删除两个表,并empty()删除最初存在的所有数据 这就是我遇到的问题 我似乎无法在destroy()和empty()之后设置FileUploadTable的列标题。当我试图上传一个新文件时,元素仍然在页面上,只是空的
FileName FileType FileSize AvailableActions
我还有第二个表,它显示了.csv文件中的数据
我需要向用户提供重置表单的功能,即清除.csv并清除所有数据,destroy()
分别删除两个表,并empty()
删除最初存在的所有数据
这就是我遇到的问题
我似乎无法在destroy()
和empty()
之后设置FileUploadTable的列标题。当我试图上传一个新文件时,元素仍然在页面上,只是空的,尽管调用了相同的初始化
在destroy()
和empty()
之后,我似乎无法摆脱CSVTable中的列标题。当我尝试上载不同的csv时,它会尝试将列标题与应该销毁的列标题进行匹配,但它们不匹配,因为尽管CSVTable已销毁并清空,但列标题仍然存在
不知道我错过了什么。它们在初始创建时被正确设置
$(elem).DataTable()
谁能给我演示一下销毁/清空数据表,然后用不同的数据重新初始化的基本工作实现,这样我就可以试着模仿它了。过去3天看他们的文件,我的大脑都快崩溃了,没有任何进展
我的数据对象的示例
[
{
//key = column title
//"val" = data in row
//object = row
key: "val",
//i.e.
FirstName: "Bob",
LastName: "Barker",
Age: 800,
//etc
},
//etc
]
嗯。您可以使用
Object.keys()
在数据上进行简单的迭代,它会动态生成一个列对象,其中包含相应的数据和标题值:
var columns = [], keys = Object.keys(data[0]);
for (var i=0;i<keys.length;i++) {
columns.push({ data: keys[i], title: keys[i] });
}
演示->让我们看看代码。您要求在代码的特定部分解决编程问题,但没有显示该代码….?如果可以,我会。。。我不理解代码,我可以发布初始化的位置和方式,但dom是如何动态生成的,这已经融入到整个体系结构中,这让意大利面条看起来有些轻描淡写。我确信我不会因为发布了几百行代码而得逞:事实上,我要求的是一个基本的工作实现,用mock data objectOK销毁并重新初始化数据表,数据有哪种格式?它是基于数组的,比如[[item],[item],…][/code>还是JSON[{item},{item},…]
?编辑了带有对象示例的OP
var table = null;
function initTable(data) {
var columns = [], keys = Object.keys(data[0]);
for (var i=0;i<keys.length;i++) {
columns.push({ data: keys[i], title: keys[i] });
}
if (table) {
table.destroy();
$('#example').empty();
}
table = $('#example').DataTable({
data: data,
columns : columns
})
}
$('#insert1').on('click', function() {
var data = [
{ FirstName: "Bob", LastName: "Barker", Age: 800 },
{ FirstName: "John", LastName: "Doe", Age: 'N/A' }
]
initTable(data);
})
$('#insert2').on('click', function() {
var data = [
{ Animal : "Lion", Taxon : 'Panthera leo' },
{ Animal : "Cheetah", Taxon : 'Acinonyx jubatus' }
]
initTable(data);
})