3

如何在一个 TR 中对来自 td 输入的值求和?

<table>
    <tr class="here">
        <td><input type="text" class="one" value="2" /></td>
        <td><input type="text" class="two" value="4"  /></td>
        <td><input type="text" class="three" value="5"  /></td>
        <td><input type="text" class="four" value="3"  /></td>
        <td><input type="text" class="sum"  /></td>
        <td><input type="text" class="five" value="2"  /></td>
    </tr>
    <tr class="here">
        <td><input type="text" class="one" value="2" /></td>
        <td><input type="text" class="two" value="4"  /></td>
        <td><input type="text" class="three" value="5"  /></td>
        <td><input type="text" class="four" value="3"  /></td>
        <td><input type="text" class="sum"  /></td>
        <td><input type="text" class="five" value="2"  /></td>
    </tr>
    <tr class="here">
        <td><input type="text" class="one" value="2" /></td>
        <td><input type="text" class="two" value="6"  /></td>
        <td><input type="text" class="three" value="4"  /></td>
        <td><input type="text" class="four" value="2"  /></td>
        <td><input type="text" class="sum"  /></td>
        <td><input type="text" class="five" value="2"  /></td>
    </tr>
    <tr class="here">
        <td><input type="text" class="one" value="5" /></td>
        <td><input type="text" class="two" value="2"  /></td>
        <td><input type="text" class="three" value="3"  /></td>
        <td><input type="text" class="four" value="8"  /></td>
        <td><input type="text" class="sum"  /></td>
        <td><input type="text" class="five" value="4"  /></td>
    </tr>    
</table>

现场演示

我可以用函数 .each 对所有值求和,但是如何为每个 tr 而不是 td 做这个?

我想从输入的类 TWO 和类 THREE 和类 FOUR 中求和值,并将其添加到同一个 TR 中的类 SUM 的输入中。

对于我的例子应该是:

2 4 5 3 **12** 2 // 4+5+3
2 4 5 3 **12** 2 // 4+5+3
2 6 4 2 **12** 2 // 6+4+2
5 2 3 8 **13** 4 // 2+3+8
4

2 回答 2

10

您的代码应如下所示。

您需要使用相关的特定类迭代td并总结这些值。然后将该值分配给您所指的输入。

$('tr.here').each(function(){
    var sum = 0;
    $('.two, .three, .four', this).each(function() {
        sum += parseFloat(this.value);
    });

    $('.sum', this).val(sum);
})

检查小提琴

于 2013-07-09T17:47:35.863 回答
1

试试下面的代码

$('tr.here').each(function () {
    var sum = parseFloat($(this).find('.two').val()) + parseFloat($(this).find('.three').val()) + parseFloat($(this).find('.four').val());

    $(this).find('.sum').val(sum);
})

检查这个小提琴

于 2013-07-09T17:55:45.107 回答