Javascript 在删除列后使IE8重新呈现表
我有一张这样的Javascript 在删除列后使IE8重新呈现表,javascript,html,html-table,internet-explorer-8,repaint,Javascript,Html,Html Table,Internet Explorer 8,Repaint,我有一张这样的表格: <table width="100%" style="table-layout: fixed;" class="listtable"> ... </table> 。。。 DOM加载后,我删除最后一个td。当然,除了IE8之外,每个浏览器都将表格保持在100% IE8只是删除该列,留下空间,而不调整其他列。检查表时,表元素为100%,但t主体不为100%。删除列后,我已经尝试设置t正文的宽度,但没有效果 有人知道我如何强制IE8重新渲染我的桌子并拉
表格
:
<table width="100%" style="table-layout: fixed;" class="listtable"> ... </table>
。。。
DOM加载后,我删除最后一个td
。当然,除了IE8之外,每个浏览器都将表格保持在100%
IE8只是删除该列,留下空间,而不调整其他列。检查表时,表
元素为100%,但t主体
不为100%。删除列后,我已经尝试设置t正文的宽度,但没有效果
有人知道我如何强制IE8重新渲染我的桌子并拉伸到100%以上吗?
注意:我无法控制服务器端生成的html,因此我需要在这里使用JavaScript。我尝试根据您的需要创建一个JSFIDLE,但在IE8兼容模式激活的情况下,我不会遇到您的问题。那剧本适合你吗
我创建了一个没有使用javascript的代码,因为我不知道您是否想要使用库
var table = document.getElementById("myTable");
var th = table.getElementsByTagName("th");
var thead = table.getElementsByTagName("thead");
var tbody= table.getElementsByTagName("tbody");
var tbody_tr= tbody[0].getElementsByTagName("tr");
var thead_tr = thead[0].getElementsByTagName("tr");
thead_tr[0].removeChild(th[th.length-1]);
var current_td = null;
for(i = 0; i < tbody_tr.length; i++) {
current_td = tbody_tr[i].getElementsByTagName("td");
tbody_tr[i].removeChild(current_td[current_td.length-1]);
}
或者如果希望浏览器自动重新计算列宽,请更改表格的样式:
style="table-layout: auto; "
你能提供表格的完整结构,包括AD、tbody、th和td标签吗?以及您正在使用的javascript代码?为什么不打开:这似乎只在IE8标准模式下发生。谢谢通过设置表格布局,我发现它基本上做了相同的事情。虽然它实际上只在使用设置超时时起作用,但非常奇怪。您可以将此链接添加到您的答案中,我会将其标记为已接受!谢谢你的帮助!哦,好的,对不起,我不能帮你,因为我的电脑上没有安装原来的IE8!不客气^^
style="table-layout: auto; "