Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DataTables初始化多个子表,columnDefs保持不变_Javascript_Jquery_Html_Css_Datatables - Fatal编程技术网

Javascript DataTables初始化多个子表,columnDefs保持不变

Javascript DataTables初始化多个子表,columnDefs保持不变,javascript,jquery,html,css,datatables,Javascript,Jquery,Html,Css,Datatables,Background:我有7个数据表是由PHP循环创建的(HTML是直接在页面上创建的,而不是来自AJAX或其他任何地方)。在这些汇总级数据表中,我在一个嵌套循环中还有6个细节级数据表(每个汇总级表一个,另一个除外)。这些都在每个汇总表的最后一列中,使用responsive选项,我可以按照将明细表的内容推送到子行 问题:我正在尝试初始化父表的initComplete:function(){}中的每个子(细节)表。尽管该表没有保留任何DataTables库功能(例如列定义宽度),但它似乎在做一些事

Background:我有7个数据表是由PHP循环创建的(HTML是直接在页面上创建的,而不是来自AJAX或其他任何地方)。在这些汇总级数据表中,我在一个嵌套循环中还有6个细节级数据表(每个汇总级表一个,另一个除外)。这些都在每个汇总表的最后一列中,使用
responsive
选项,我可以按照将明细表的内容推送到子行

问题:我正在尝试初始化父表的
initComplete:function(){}
中的每个子(细节)表。尽管该表没有保留任何DataTables库功能(例如列定义宽度),但它似乎在做一些事情

我的主要问题是忽略我的数据表选项(在这种情况下,通过
columnDefs
设置宽度是至关重要的:

我遗漏了什么吗?它选择覆盖/忽略我的列宽是有原因的。父表允许
responsive
columnDefs

请参见代码段示例:

$('#汇总表')。数据表({
分页:false,
自动宽度:false,
搜索:假,
columnDefs:[{
“宽度”:“3%”,
“目标”:[0]
},
{
“宽度”:“10%”,
‘目标’:[1,2]
},
{
“类名称”:“dt中心”,
“目标”:“所有人”
},
],
initComplete:function(){
控制台日志(“表格初始化完成”);
var sub_表=$(“#汇总表”)。查找(“.ic详细信息表”);
如果(子表长度>0){
var sub_table_inst=$(sub_table).DataTable({
分页:false,
自动宽度:false,
搜索:假,
columnDefs:[
//忽略????
{
“宽度”:“10%”,
“目标”:[0]
},
{
“宽度”:“25%”,
‘目标’:[1]
},
{
“宽度”:“25%”,
‘目标’:[2]
},
{
“宽度”:“40%”,
‘目标’:[3]
},
{
“类名称”:“dt中心”,
“目标”:“所有人”
},
],
顺序:对,
排序:对,
initComplete:function(){
log(“子表初始化完成”);
},
回答:是的,
dom:'rt',
订单:[
[1,‘asc’]
]
});
}
},
订购:错,
回答:是的,
dom:'rt',
订单:[
[1,‘asc’]
]
});

标题一
标题二
标题三
明细表
第一单元
第二单元
第三牢房
标题一
标题二
标题三
标题四
标题一
标题二
标题三
标题四

默认情况下,您希望做的不是datatables的一部分,但是您可以通过为类
dtr详细信息
compact
添加最大宽度来破解它

$('#汇总表')。数据表({
分页:false,
自动宽度:false,
搜索:假,
columnDefs:[{
“宽度”:“3%”,
“目标”:[0]
},
{
“宽度”:“10%”,
“目标”:[1,2,3]
},
{
“类名称”:“dt中心”,
“目标”:“所有人”
},
],
initComplete:function(){
控制台日志(“表格初始化完成”);
var sub_表=$(“#汇总表”)。查找(“.ic详细信息表”);
如果(子表长度>0){
var sub_table_inst=$(sub_table).DataTable();
}
},
订购:错,
回答:是的,
dom:'rt',
订单:[
[1,‘asc’]
]
});
.dtr详细信息,
.紧凑型{
宽度:100%!重要;
}

标题一
标题二
标题三
明细表
第一单元
第二单元
第三牢房
标题一
标题二
标题三
标题四
标题一
标题二
标题三
标题四

这是的默认行为。请遵循以了解更多信息并尝试克服此问题。实际上,我不希望使用此函数在java脚本中动态创建子行。Html已经存在,我是否可以在其上初始化datatables以便它识别给定的选项?您不能。datatables没有此类选项n可用。但在任何情况下,您希望如何操作?知道外部表有3列,内部表有4列?我不希望表与外部表对齐。我只希望能够为我的列创建更统一的宽度(但仍允许响应).内表不是外表的延续,它只是显示了更详细的内容,因此不需要相同的标题等。我现在得到的是内容不多的小列和宽度不受限制的过大列,因此看起来很奇怪!这使得det上所有列的大小相等所有行对吗?如果我想定义每列的大小呢?我想我可以这样做:nth()?在我的实际版本中,第一列是just和ID,所以只需要表宽的3%,然后我有一些文本列,每个需要20%,然后一些数据列中的百分比,每个需要10%。但这需要在所有细节表中发生,以便它们看起来是一致的。为什么不添加一个特定的ID