0

jquery関数に少し問題があります。価格を指定して、数量の数値を入力しながら小計を計算しようとしています。

これが私のhtmlスニペットです:

<!-- Price -->
<td width="10%"><div class="price" value="0"></div></td>

<!-- Quantity -->
<td width="9%"><input class="quantity" type="text" value="0" size="1" onchange="updateTotal(this)"/></td>

<!-- Subtotal -->
<td width="5%"><div class="subtotal" value="0"></div></td>

そして私のjQuery関数:

function updateTotal(qty){

//Calculate Subtotal for each item
var quantity = $(qty).val();
var price = $('.price').html();
var subtotal = parseFloat(price) * parseInt(quantity);
$('.subtotal').text(subtotal);

//Calculate Grand Total
var sum = 0;
$('.subtotal').each(function(){
    sum += parseFloat($(this).text());
});
$('#grandTotal').html(sum);

}

私の結果:

!(http://i45.tinypic.com/16a7exy.png)
!(http://i48.tinypic.com/5vu9uf.png)

何が起こっているのかよくわかりません。作業中の行だけを取得しようとしましたが、失敗しました。どんな助けでも大歓迎です。

4

3 に答える 3

1

$('。subtotal')。text(subtotal); 暗黙の.eachが含まれています。これにより、すべての.subtotal行が上書きされます。その行を次のように置き換えて、明示的にします。

$('.subtotal').each(function(){
this.text(subtotal);
});
于 2012-08-24T21:41:25.750 に答える
0

このようなものを使用してください

$("#textbox").focusout(function () {
    updateTotal(value);

});

Jqueryを使用して、テキストフィールドから値を取得します。フォーカスが外れている場合は、関数が1回だけ呼び出されます。Onchangeが問題の原因です。

于 2012-08-24T21:42:19.437 に答える
0

作業中の場合は2つのことを.html参照してください:http://jsfiddle.net/UpGWP/

それ以外の場合は、 .propapiまたは.attrapiを使用して値属性を取得します:http://jsfiddle.net/764J8/

それが必要性を助けることを願っています!

hrefまた、私はdivから削除しました:)

コード

function updateTotal(qty) {

    //Calculate Subtotal for each item
    var quantity = $(qty).val();
    var price = $('.price').attr('value');
    alert(price);
    var subtotal = parseFloat(price) * parseInt(quantity);
    $('.subtotal').text(subtotal);

    //Calculate Grand Total
    var sum = 0;
    $('.subtotal').each(function() {
        sum += parseFloat($(this).text());
    });
    $('#grandTotal').html(sum);
}​
于 2012-08-24T21:43:27.140 に答える