Javascript:通过检查行顶部位置将新行插入表中

时间:2014-07-25 06:56:22

标签: javascript css-position

当行的顶部位置超出像素限制时,我想插入两个新行。 我尝试过以下代码但不能正常使用。
我正在为分页和重复表格标题添加这两行。
   以下是此代码的打印预览:
enter image description here 标题只能在下一页重复。

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;  
  }  
}  

1 个答案:

答案 0 :(得分:0)

也许您可以尝试将css属性添加到表标题中?见CSS page break properties。 例如:

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

它应该在每个表头之前添加分页符,因此您只需要近似计算开始新表的位置。我现在无法对此进行测试,但也许它会提供帮助。