通过概括 this SO answer 中的代码,我创建了一个小的 jQuery 插件,可以很容易地在任何表格上设置滚动标题 - 也就是说,当您向下滚动时,表格标题通常会在可 window 口之外,克隆标题固定在窗口的顶部,以便您可以看到哪些列是哪些。一切正常,但我遇到的问题是我无法让克隆表和原始表之间的列宽完美匹配。
我创建了一个 jsFiddle 来演示问题 here .它的要点是我使用以下循环将单元格宽度从父表复制到克隆表:
$("#tbl1").find('tr').first().children().each(function(i, e)
{
$($("#tbl1_clone").find('tr').children()[i]).width($(e).width());
});
这是必要的,因为克隆表只包含父表的表头;它没有任何内容,因此如果没有这一步,它的列宽将与父表的列宽不同。然而,这个循环并不能正常工作。克隆表格中的单元格宽度总是相差几个像素。这在 IE8 和 Chrome 中都会发生(可能还有其他的,虽然我没有测试过它们。)
我完全不知道如何解决这个问题。请查看the jsFiddle ,因为它比我更好地解释了问题。
可能值得注意的是,当克隆表的位置不固定时,相同的代码似乎也能正常工作。但是,这对我没有用,因为我需要修复它。
最佳答案
出于某种原因,您克隆的表上的宽度属性正在抛出计算。我不确定为什么,但如果你使用:
$("#tbl1_clone").removeAttr('style');
在您的 jquery 代码末尾,例如 here
, 它似乎有效。
关于javascript - 将单元格宽度复制到固定位置克隆表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5437879/