keyup上的文本字段的总和会导致行的第一个字段中出现问题

时间:2015-06-23 09:49:30

标签: javascript jquery html

我有一张桌子。我想找出如下总结: td(1) + td(2) + td(3) = td(4)td(5) + td(6) + td(7) = td(8)td(9) + td(10) + td(11) = td(12)

这是我的代码:

$(document).ready(function () {
    $('#table').on('keyup', 'input', function () {
        $("#table tr").slice(2).find("td:nth-child(4n + 1)").each(function () {
            var sum = 0;
            $(this).prevAll(':lt(3)').find('input').each(function () {
                sum += (+this.value || 0)
            });
            $(this).find('input').val(sum)
        })
    })
})

上面的代码运行正常。但我的问题是,我无法在第一列输入任何内容(即td:eq(0))。我的代码怎么了?

http://jsfiddle.net/b0svwpnn/3/

1 个答案:

答案 0 :(得分:4)

您需要明确排除input选项中的第一个nth-child,您可以使用:not()来实现。试试这个:

$("#table tr").slice(2).find("td:nth-child(4n + 1):not(:first)")

Updated fiddle