使用jQuery计算多个输入的总和

时间:2014-03-02 21:05:02

标签: jquery

我知道这种性质的问题已经被多次提出,但经过几个小时尝试不同的事情后,我仍然没有更聪明。希望有人可以启发我。

我正在尝试添加多个输入的值,并在单独的字段中输出总值。下面的片段完成了这项工作,但我需要遍历每个季节,因为它们是使用不同的ID动态创建的。

$('#season-0 .appearances').val(
    Number($('#season-4 .appearances').val()) +
    Number($('#season-36 .appearances').val())
);
$('#season-0 .goals').val(
    Number($('#season-4 .goals').val()) +
    Number($('#season-36 .goals').val())
);

我尝试了一些不同的功能,但似乎没有任何功能,例如:

var sum = 0;
$('.appearances').each(function(){
    sum = sum + Number($(this).val());
});
$('#season-0 .appearances').html(sum);

我很感激你的任何帮助,它现在已经很久了;)

以下是关联的HTML:

<div id="season-0">
    <table>
        <tr>
            <td>
                <input type="text" data-index="appearances" class="appearances" value="" />
            </td>
            <td>
                <input type="text" data-index="goals" class="goals" value="" />
            </td>
        </tr>
    </table>
</div>
<div id="season-4">
    <table>
        <tr>
            <td>
                <input type="text" data-index="appearances" class="appearances" value="25" />
            </td>
            <td>
                <input type="text" data-index="goals" class="goals" value="4" />
            </td>
        </tr>
    </table>
</div>
<div id="season-36">
    <table>
        <tr>
            <td>
                <input type="text" data-index="appearances" class="appearances" value="19" />
            </td>
            <td>
                <input type="text" data-index="goals" class="goals" value="8" />
            </td>
        </tr>
    </table>
</div> 

1 个答案:

答案 0 :(得分:3)

哦,我明白了,你试图在第一个输入框中显示总和,为此你必须使用 val(sum),所以这是工作解决方案:

var sum = 0;
$('.appearances').each(function(){
    sum += Number($(this).val());
});
$('#season-0 .appearances').val(sum);

另外,请确保已正确链接jQuery库。

这是小提琴:

http://jsfiddle.net/Ephws/