簡體   English   中英

Javascript:通過檢查行頂部位置將新行插入表中

[英]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;  
  }  
}  

也許您可以嘗試將CS​​S屬性添加到表標題中? 請參閱CSS分頁符屬性 例:

.tableHeaderRepeat { page-break-before: always; }

它應該在每個表頭之前添加一個分頁符,因此您只需要大概計算一下位置即可啟動新表。 我目前無法對此進行測試,但也許會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM