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 单元格并将数字相加的代码。获得总数后,我可以将其插入[calculate total here]位置。

谢谢!

4

4 回答 4

1

选择元素,并使用each方法循环它们:

var tot = 0;
$('td.time').each(function(){
  tot += parseFloat($(this).text());
});
于 2011-01-26T16:25:15.327 回答
0

您可以使用:nth-child(2n)浏览所有表格行的第二项...

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

或者由于您的时间列是相同的,您甚至可以...

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

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

于 2011-01-26T16:26:46.003 回答
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);

于 2011-01-26T16:27:50.513 回答
0

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

如果我是正确的,这将选择所有具有“时间”类的 TD 标签。
也许这就是你想要使用的?

于 2011-01-26T16:28:22.930 回答