我进行了很多搜索,找不到解决方案,并且由于我的代码能力受到一定限制,因此我寻求帮助。

我正在尝试做的正是在这里找到的内容:http://jsfiddle.net/unKDk/335/

$(function(){
    var $iTableTotals = $("#iTable .colTotal");
    var $eTableTotals = $("#eTable .colTotal");
    var $diffValues = $(".diffValue");
    $(".colTotal").on('change keyup', function() {
        $iTableTotals.each(function(i){
            var diff = Number($iTableTotals.eq(i).val()) - Number($eTableTotals.eq(i).val());
            $diffValues.eq(i).val(diff);
        });
    });
    $iTableTotals.eq(0).change();
});


但是我想输入字段而不是预加载的数字。
澄清一下,我在网上找到了此代码,我不是该代码的作者。

谢谢。

最佳答案

并非100%确切地知道使用输入字段而不是预载数字意味着什么。请查看分叉的小提琴,希望这就是您的意思:
http://jsfiddle.net/B9EWd/

HTML:

<table id="sum_table" width="300" border="1">
        <tr class="titlerow">
            <td></td>
            <td>Apple</td>
            <td>Orange</td>
            <td>Watermelon</td>
            <td>Strawberry</td>
            <td>Total By Row</td>
        </tr>
        <tr>
            <td> Row1</td>
            <td class="rowAA"><input value="7" /></td>
            <td class="rowAA"><input value="2" /></td>
            <td class="rowBB"><input value="3" /></td>
            <td class="rowBB"><input value="4" /></td>
            <td class="totalRow"></td>
        </tr>
        <tr>
            <td> Row2</td>
            <td class="rowAA"><input value="1" /></td>
            <td class="rowAA"><input value="2" /></td>
            <td class="rowBB"><input value="3" /></td>
            <td class="rowBB"><input value="4" /></td>
            <td class="totalRow"></td>
        </tr>
        <tr>
            <td>Row3</td>
            <td class="rowAA"><input value="1" /></td>
            <td class="rowAA"><input value="5" /></td>
            <td class="rowBB"><input value="3" /></td>
            <td class="rowBB"><input value="4" /></td>
            <td class="totalRow"></td>
        </tr>
        <tr class="totalColumn">
            <td class="totalCol"></td>
            <td class="totalCol"></td>
            <td class="totalCol"></td>
            <td class="totalCol"></td>
            <td class="totalCol"></td>
            <td class="totalCol"></td>
        </tr>
</table>


Javascript:

function updateTotals() {
    $("#sum_table tr:not(:first,:last)  td:last-child").text(function(){
        var t = 0;
        $(this).prevAll().find("input").each(function(){
            t += parseInt( $(this).val(), 10 ) || 0;
        });
        return t;
    });

    $("#sum_table tr:last td:not(:first,:last)").text(function(i){
        var t = 0;
        $(this).parent().prevAll().find("td:nth-child("+(i + 2)+") input").each(function(){
            t += parseInt( $(this).val(), 10 ) || 0;
        });
        return "Total: " + t;
    });
}

$( "input" ).change( updateTotals );
updateTotals();

关于javascript - 如何对输入字段的行和列求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24976013/

10-12 04:06