如何从 JavaScript 调整表格列的宽度

Posted

技术标签:

【中文标题】如何从 JavaScript 调整表格列的宽度【英文标题】:How to resize table columns width from JavaScript 【发布时间】:2010-10-22 21:26:41 【问题描述】:

我的 javascript 有问题。 我有一个存储在 TabList 中的表格单元格列表。 我想找到最大宽度,然后将此宽度设置为所有这些。 示例代码在这里,但宽度的设置不起作用。

var MaxTabWidth = 0;
for (var i = 0; i < TabList.length-1; i++)

  if (TabList[i].offsetWidth>MaxTabWidth) 
    MaxTabWidth = TabList[i].offsetWidth;


for (var i = 0; i < TabList.length-1; i++)

  TabList[i].style.width = MaxTabWidth+"px";
  // TabList[i].width = MaxTabWidth+"px";
  // TabList[i].offsetWidth = MaxTabWidth+"px";

我已经评论了我的尝试.. 有什么帮助吗? This 没有为我做这个伎俩..

更新: 我确信 TabList 是一个单元列表,因为我正在检查类名。 我一直循环到 TabList.length-1,因为我希望最后一个单元格填充表格的其余宽度。

【问题讨论】:

【参考方案1】:

我建议您从页面中删除所有 css/样式并对其进行测试以隔离问题。像这样的事情经常被 css 复杂化。

【讨论】:

【参考方案2】:

对于它的价值,在 jQuery 中,这可以通过以下脚本完成,其中您的表的 id 为“myTable”。如果您对环境有足够的控制权以添加到框架中,我强烈推荐它,因为它使此类任务变得更加容易。

    var maxWidth = 0;

    $("#myTable td").each(function() 
        if ($(this).width() > maxWidth) 
            maxWidth = $(this).width();
        
    );
    $("#myTable td").width(maxWidth);

【讨论】:

【参考方案3】:

如果将整个表格的宽度设置为 --i*MaxTabWidth。这会均匀分布列吗?假设您的表名为 myTable。

document.getElementById('myTable').width = new String(--i*MaxTabWidth)

编辑:也不会

for (var i = 0; i < TabList.length-1; i++)

通过在 TabList.length-2 处停止来跳过最后一列?

【讨论】:

以上是关于如何从 JavaScript 调整表格列的宽度的主要内容,如果未能解决你的问题,请参考以下文章

Latex中的表格宽度调整

在streamlit中调整表格列的宽度

你如何计算javascript中html表格的最小宽度?

excel中如何快速设置每行每列的宽度

如何控制Listview每列的宽度自适应这列最长的内容

layui 的数据表格 列宽度自适应应该怎么设置