2012-06-01 46 views
0

我有这样的代码:如何在jQuery中复制此内容?

/* Modify the footer row to match what we want */ 
var nCells = nRow.getElementsByTagName('th'); 
nCells[1].innerHTML = iPageCPSV; 
nCells[2].innerHTML = iPageCGV; 
nCells[3].innerHTML = iPagePPSV; 
nCells[4].innerHTML = iPagePGV; 

它工作得很好,因为它是。不过,我现在在此部分添加了另一个<tr>。而且我有麻烦figureing如何填充<th>第二<tr>

<tfoot> 
    <tr style="background-color: #DDDDDD;"> 
     <th align="right" colspan="6"> 
      Page Total: 
     </th> 
     <th align="left"></th> 
     <th align="left"></th> 
     <th align="left"></th> 
     <th align="left"></th> 
    </tr> 
    <tr style="background-color: #DDDDDD;"> 
     <th align="right" colspan="6"> 
      Downline Total: 
     </th> 
     <th align="left"></th> 
     <th align="left"></th> 
     <th align="left"></th> 
     <th align="left"></th> 
    </tr> 
</tfoot> 

我更<th>一切工作,增加了第二<tr>之前。它仍然有效,我只是不知道如何将数据填充到第二行。任何人都可以帮助我修改现有的JavaScript或告诉我如何将其复制到jQuery?

+0

'NCELLS [6,7,8,9]'' – mellamokb

+0

是th'为表格标题单元格。奇怪的是在表格中有两个标题。顺便说一句,你当前的代码与JQuery无关。 – VisioN

+0

@mellamokb这也是我的第一个猜测,但他们认为是未定义的。 –

回答

5

没有jQuery的...

var foot = nRow.getElementsByTagName('tfoot')[0]; 
foot.rows[0].cells[1].innerHTML = iPageCPSV; 
foot.rows[0].cells[2].innerHTML = iPageCGV; 
foot.rows[0].cells[3].innerHTML = iPagePPSV; 
foot.rows[0].cells[4].innerHTML = iPagePGV; 

foot.rows[1].cells[1].innerHTML = iPageCPSV; 
foot.rows[1].cells[2].innerHTML = iPageCGV; 
foot.rows[1].cells[3].innerHTML = iPagePPSV; 
foot.rows[1].cells[4].innerHTML = iPagePGV; 

......或与之

var foot = $('tfoot').first(); 

foot.children().each(function(i, row) { 

    row.cells[1].innerHTML = iPageCPSV; 
    row.cells[2].innerHTML = iPageCGV; 
    row.cells[3].innerHTML = iPagePPSV; 
    row.cells[4].innerHTML = iPagePGV; 
}); 

一个更现代的解决方案......

var rows = nRow.getElementsByTagName('tfoot')[0].rows, 
    data = [iPageCPSV, iPageCGV, iPagePPSV, iPagePGV]; 

[].forEach.call(rows, function(el, i) { 
    data.forEach(function(item, ii) { 
     el.cells[ii + 1].innerHTML = item; 
    }); 
}); 

由于需要不同的数据对于每个单元格,我建议将它们全部放入一个Array中婷的所有元素的集合,并配对两个...

var data = [iPageCPSV, iPageCGV, iPagePPSV, iPagePGV, 'foo', 'bar', 'baz', 'buz']; 

$('tfoot > tr > th:not(:first-child)').html(function(i, el) { 
    return data[i]; 
}); 
+0

这就是我错过的。我正在尝试nCells [0] [1]。可悲的是,我对JavaScript不太熟悉。 –

+0

我不认为'nRow'有'table'元素。可能是'tfoot-> tr' ..我不确定..但是这是正确的方法。+1 –

+1

没有循环从'iPage *'变量数组中馈入?你破了我的心;) –