我有兩個包含各種元素(span,input,select,...)的html表格,我想強制這些表格的行具有相同的高度。不幸的是,在tr
或td
上設置屬性「高度」不起作用(如果該行包含至少一個超過給定高度的元素,則該行更高)。使用Javascript設置高度很慢
我還沒有找到一種方法,我可以用css強制行高,所以我寫了一個循環遍歷所有行的Javascript函數,檢查左表的高度與相應行的高度在右表中,如果它們不同,我將高度(改變樣式)設置爲最大值。
它的工作原理......但如果表格有很多行,則速度非常慢!我認爲這是由於這種風格的每次改變都會導致迴流。
任何提示?請注意,我無法合併這兩個表。
這裏我的代碼剪斷,但也許我總共需要不同的方法......
var rightTableRows = mainTable.children("tbody").children("tr:parent");
var leftTableRows = colHeader.children("tbody").children("tr:parent");
for (chr=0;chr < leftTableRows .length;chr++) {
var rowLeft = leftTableRows [chr];
var heightleft = rowLeft.offsetHeight;
var rowRight = rightTableRows[chr];
var heightright = rowRight.offsetHeight;
if(heightleft != heightright){
console.log("left: "+heightleft +" - right: "+heightright);
if(heightleft>heightright){
rowRight.setAttribute("style","height:"+heightleft+"px");
}else{
rowLeft.setAttribute("style","height:"+heightright+"px");
}
}
}
酷,thx。我馬上嘗試。在我看來,如果應該提高性能:我只有在不同時才設定高度。 – Zardo
性能更好! :-)它不工作在IE瀏覽器,我檢查它,我會回來這裏... – Zardo
很酷,讓我知道如果有任何錯誤報告在IE瀏覽器(和哪個版本),我們可以嘗試通過他們 – skyline3000