我怎样才能在jQuery中复制它?

时间:2012-06-01 21:13:03

标签: javascript 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>。我无法弄清楚如何填充第二个<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>

在我添加第二个<tr>以及更多<th>之前,一切正常。它仍然有效,我只是不知道如何将数据填充到第二行。任何人都可以帮我修改现有的JavaScript或者告诉我如何将它复制到jQuery中吗?

1 个答案:

答案 0 :(得分: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;
    });
});

由于每个单元格需要不同的数据,我建议将它全部放在一个数组中,获取所有元素的集合,然后将这两个元素配对......

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

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