0

我有一个带有行的表和一个用于向表中添加行的按钮。我使用以下代码增加输入字段的 ID:

$("#add_row_e").click(function() {
    var row = $("#expenses tbody > tr:last"),
        newRow = row.clone(true);
    newRow.find("input").each(function() {
        var num = +(this.id.match(/\d+$/) || [0])[0] + 1;
        this.id = this.id.replace(/\d+$/, "") + num;
        this.name = this.id;
    });
    newRow.insertAfter(row);
    return false;
});

然后,我将 2 个输入相乘并使用以下命令将它们输出到 div:

$('.multiplier').on('keyup', function() {
    $('#results').html("£" + parseInt($('#E_NONM').val()) * parseInt($('#E_CCNM').val()));
});

有什么办法可以让它为我添加的每一行工作?我想它必须查看行中的 id 并使用它来乘法,但是我不知道该怎么做。

另外,如何让上述内容输出到输入框而不是 div?

4

1 回答 1

0

试试这个

$('.multiplier').on('keyup', function() {

   var $tr = $(this).closest('tr');
   var $non = $tr.find('[id*=E_NONM]').val();
   var $ccn = $tr.find('[id*=E_CCNM]').val();

   $tr.find('#results').val("£" + parseInt($non) * parseInt($ccn));
});

这是假设 #E_NONM 和 #E_CCNM 位于 .multiplier 文本框所在的当前行内。

于 2012-10-03T15:38:57.670 回答