1

Jsフィドル

tr私の場合、ユーザーが数量フィールドの値を入力するたびに、すべての要素の合計を動的に計算して表示しようとしています。

誰かが私のコードのエラーを修正できますか?

Jクエリコード:

$("table input").on('change blur input', function() {
var val = this.value;
$(this).closest('tr').find('td:eq(4)').text(function(){
    return (+$.trim($(this).siblings(':eq(3)').text()) * +val)   
 })
$('table  tr td:nth-of-type(5)').each(function() {
        sum += parseFloat($(this).text().slice(1));
    });
    $('.sum').text(sum);
});
4

3 に答える 3

1

これを試して。sum を宣言する必要があり、NaN ケースを処理する必要があります。

var sum = 0;
$('table  tr td:nth-of-type(5)').each(function() {
    var m = parseFloat($(this).text().slice(1));
    if (!isNaN(m)) {
        sum += m;
    }
});
console.log(sum);
于 2013-10-09T23:18:20.573 に答える
0

sumすでに述べたように、すべての入力で を宣言し、ケースを処理NaNし、合計値を更新する必要があります。これを試して:

 $("table input").on('change blur input', function () {
    var val = this.value;
    var sum = 0;
    $(this).closest('tr').find('td:eq(4)').text(function () {
        return (+$.trim($(this).siblings(':eq(3)').text()) * +val);
    });
    $('table  tr td:nth-of-type(5)').each(function () {
        var k = parseFloat($(this).text());
        sum +=  isNaN(k)?0:k;
        $('.sum').text(sum);
    });
});
于 2013-10-09T23:29:07.807 に答える