0

私はこのコードを持っています:

/* 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;

そのままでも問題なく動作します。ただし、セクションにもう1つ追加<tr>しました。<th>そして、私は2番目にを入力する方法を理解するのに苦労しています<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>私が2番目を追加する前に、<th>すべてがうまくいきました。それでも機能します。2行目にデータを入力する方法がわかりません。誰かが既存のJavaScriptを変更したり、jQueryに複製する方法を教えてもらえますか?

4

1 に答える 1

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

セルごとに異なるデータが必要なので、すべてを配列に入れて、すべての要素のコレクションを取得し、2 つをペアにすることをお勧めします...

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

$('tfoot > tr > th:not(:first-child)').html(function(i, el) {
    return data[i];
});
于 2012-06-01T21:19:02.637 に答える