2011-01-26 17 views
1

は、私はこのような行を持つテーブルがある:表に数字を追加

<tr> 
    <th width="30"></th> 
    <th width="30">Time</th> 
    <th>Description</th> 
</tr> 
<tr> 
    <td><a href="#" class="edit">edit</a></td> 
    <td class="time">2.50</td> 
    <td>I did this, and also that, then a little of something else.</td> 
</tr> 
<tr> 
    <td><a href="#" class="edit">edit</a></td> 
    <td class="time">1.50</td> 
    <td>Another description of time.</td> 
</tr> 
<tr> 
    <td><a href="#" class="edit">edit</a></td> 
    <td class="time">1.50</td> 
    <td>Yet one more item entered.</td> 
</tr> 
<tr class="total"> 
    <td><strong>Total:</strong></td> 
    <td><strong>[calculate total here]</strong></td> 
    <td>&nbsp;</td> 
</tr> 

私はjQueryとを使用していた時間を追加するとき、私はすべての数字を追加する必要が発生した機能の一部として、 td.timeセル。しかし、私の人生のために、私はループを書くことがあまりよくありませんし、それを理解することはできません。

すべてのtd.timeセルを調べ、数字を追加するコードが必要です。私が合計を得たら、[ここで合計を計算]にそれを挿入することができます。

ありがとうございます!

答えて

1

要素を選択して、ループにそれらをeachメソッドを使用します。

var tot = 0; 
$('td.time').each(function(){ 
    tot += parseFloat($(this).text()); 
}); 
+0

パーフェクト。ありがとう! – Ben

0

あなたは

var total = 0.0; 
$('table tr td:nth-child(2n)').each(function(){ 
     val = parseFloat($(this).html()); 
     if (val > 0)total += val; 
}); 
$('#result').html(total); 

または以降...すべてのテーブルの行の第二項目を通過する:nth-child(2n)を使用することができますあなたの時間の列は同じクラスです...

var total = 0.0; 
$('.time').each(function(){ 
     val = parseFloat($(this).html()); 
     if (val > 0)total += val; 
}); 
$('#result').html(total); 

http://jsfiddle.net/WsSVQ/3/

0

あなたのテーブルは、ID = "のTestTable" とトータルタイムID = "TOTAL_TIME" とTD

var total = 0;
$('#TestTable td.time').each(function(index) {
total = total + parseFloat(this.html());
});
$('#total_time').html(total);

0

$('td[class*="time"]')

これは、クラスを持つすべてのTDタグを選択」を持っている場合私が正しいならば、 "時間"。
多分それはあなたが使いたいものですか?

+0

クラス*が「時間」を含むすべてのセルを選択します。また、例えば、 'も含みます。 – Guffa

関連する問題