2

テーブルがあるとしましょう:

    <table id="myTable">
    <thead>
    <th> Col1 </th>
    <th> Col2 </th>
    </thead>
    <tbody>
       <tr><td>1</td><td>2</td></tr>
       <tr><td>1</td><td>2</td></tr>
    </tbody>
    </table>

Col2という名前の列に値を追加したい 4. 列の位置は可変であるため、ここで回答されている列の位置によって値を追加したくありません。

4

3 に答える 3

1

次のコマンドで列インデックスを取得できます

var columnIndex = $("#myTable th").index(":contains('Col2')");

そこから、質問でリンクしたスニペットを使用して合計を収集し、結果を合計セルに出力できます。

var sum = 0;
$("#myTable tbody tr").each(function() {
    var td = $("> td", this).eq(columnIndex);
    sum += td.text() | 0;
});

注:x | 0整数に変換するためのちょっとしたトリックです。

于 2012-06-07T10:01:20.580 に答える
1
var index = $('table th:contains(Col2)').index(),   // get index of th
    sum = 0;
$('table tbody tr').each(function() {
    sum += parseInt( $.trim( $('td:eq('+ index +')', this).text() ), 10);
});

少し説明


  • $('td:eq('+ index +')', this).text()対応する td のテキストを取得します

  • $.trim( $('td:eq('+ index +')', this).text() )テキストからスペースを削除する

  • parseInt( $.trim( $('td:eq('+ index +')', this).text() ), 10)整数の値を変換します

  • sum += parseInt( $.trim( $('td:eq('+ index +')', this).text() ), 10);合計を実行します。

デモ

于 2012-06-07T10:04:12.073 に答える
1

次のことをお勧めします。

var colNum = $('th').filter(function(){
                 return $(this).text().trim() == 'Col2';
             }).index(),
    sum = 0;

$('tbody tr').each(
    function(i){
        colValue = $(this).find('td').eq(colNum).text();
        sum += parseInt(colValue);
    });

JS フィドルのデモ

参考文献:

于 2012-06-07T09:55:19.410 に答える