【问题标题】:dataTable header shorter than table widthdataTable 标题短于表格宽度
【发布时间】:2014-07-17 18:04:27
【问题描述】:

我一直在研究这个问题,但似乎找不到解决方案。在我的表格中,如果我添加一个特定的列,它会由于某种原因抛出表格的标题,使标题远小于表格宽度。这是一个屏幕截图:

这是我正在使用的代码的 sn-p:

function callDT() {
var url = "localhost/dataTable001.php";
$.getJSON(url,function(data){

    var dt = data.dt;
    var table = '<table id="dataTables001"><thead><tr><th>Time</th><th>Number of Cases</th><th>Passed</th><th>Failed</th><th>Class Name</th></tr></thead><tbody>';
    $.each(data.dt.time, function(i, time) {
            table +="<tr class='even gradeC'><td>"+ time + "</td>"+"<td class='priorityColor'>" + data.dt.total[i]  + "</td>"+"<td class='statusColor'>" + data.dt.pass[i] + "</td>"+"<td class='Color'>" + data.dt.fail[i] + "</td>"+"<td class='statusColor'>" + data.dt.class_name[i] + "</td>"+"</tr>";
    });
// after the loop, close your tbody and table tags
table += '</tbody></table>';
// then AFTER the loop, you set the data to the table.
$("#dataTables001").html( table )
$('#dataTables001').dataTable( {

             "paginate": false,
             "scrollY": "260px",
             "info": false,
             "orderFixed": [[0,'desc']],

似乎抛弃一切的列是“类名”。它确实包含更长长度的值。如果我从表中取出 Class Name 列,所有内容都会正确对齐。

对此的任何帮助将不胜感激!

【问题讨论】:

  • 去掉“时间”是否也能解决这个问题。对我来说,似乎“时间”标题应该是一个更大的宽度,如果是的话,它将允许所有其他列对齐。
  • 我真的很想看看生成的 HTML 标记...?

标签: jquery datatable datatables jquery-datatables


【解决方案1】:

您有重复的 ID,我猜这是问题所在。

您将 html 插入到#dataTables001(不确定现有元素是什么),并且在您的新 html 中,主表具有相同的 ID。

如果现有元素是&lt;table&gt;,那么您需要做的就是删除新表的打开和关闭标签

【讨论】:

  • +1,非常好的观察。但是,我怀疑这是真正的问题。
  • 很好看。我进行了更改,但问题仍然存在
  • @davidkonrad 虽然涉及许多因素...可能是简单的 css 边距、表格中的表格等。插件肯定会在外部元素上调用,而内部会做意想不到的事情
  • @Jason 是否正确包含在其父级中?或者是否存在可能导致问题的溢出? th、td 或 table 本身是否设置了任何 css 宽度约束?
  • @charlietfl,有很多这样的问题。它通常以格式错误的 HTML 结尾。但不能确定,当然。但是您指出了一个肯定必须解决的问题!
猜你喜欢
  • 1970-01-01
  • 2012-09-23
  • 2021-08-07
  • 2016-11-22
  • 2021-12-08
  • 2015-03-21
  • 2014-09-23
  • 2019-04-28
  • 2021-01-20
相关资源
最近更新 更多