[英]Javascript: Insert new rows into table by checking row top position
我想在一行的頂部位置超出像素限制時插入兩個新行。 我試過下面的代碼,但無法正常工作。
我添加這兩行用於分頁符和重復表頭的目的。
以下是此代碼運行的打印預覽:
標頭應僅在下一頁重復。
var x = document.getElementsByTagName('tr');
var rowTopVal = 0;
var tIndex = 0;
var deductVal = 0;
var tableId = document.getElementById("testID");
for (var i = 0; i < x.length; i++) {
rowTopVal = x[i].position().top;
rowTopVal = rowTopVal - deductVal;
if (1200 < rowTopVal) {
tIndex = i;
var row = tableId.insertRow(tIndex);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cell4 = row.insertCell(3);
var cell5 = row.insertCell(4);
cell1.innerHTML = "x";
cell2.innerHTML = "Y";
cell3.innerHTML = "z";
cell4.innerHTML = "P";
cell5.innerHTML = "q";
row.className = 'tableHeaderRepeat';
var row2 = tableId.insertRow(tIndex);
row2.className = 'tableHeaderRepeatBlank';
newRow1Height = parseInt($('.tableHeaderRepeatBlank').css('height'), 10);
newRow2Height = parseInt($('.tableHeaderRepeat').css('height'), 10);
deductVal = deductVal + rowTopVal - newRow1Height - newRow2Height;
}
}
也許您可以嘗試將CSS屬性添加到表標題中? 請參閱CSS分頁符屬性 。 例:
.tableHeaderRepeat { page-break-before: always; }
它應該在每個表頭之前添加一個分頁符,因此您只需要大概計算一下位置即可啟動新表。 我目前無法對此進行測試,但也許會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.