0

私のショッピング カート ページでは、商品は次のように div ボックスに表示されます。

製品が生成され、ユーザーが追加したショッピング カートに表示されます。

ショッピング カート ページには、任意の数の商品を含めることができます。

ユーザーがテキストボックス内に数字を入力して更新ボタンをクリックすると、その数字は から取得した価格で乗算され、<p class="price2"></p>内の新しい合計金額に置き換えられ<p class="price2"></p>ます。

ユーザーがテキストボックス内に「3」と入力してボタンを押したとします。次に、それはあるべきで "3 * 699 = 2097"あり、2097は を置き換える必要がある699ため、「total: 2097".

私が理解するのが難しいのは、これが特定の製品の div ボックスで発生するため、他の製品は影響を受けないということです。つまり、クラスまたは ID を使用して からテキストを取得することはできません<p>。親を使用する必要がありますか? すべての製品には<p class="price2">価格があり、すべての製品価格を変更したくないためです。

誰かが私を助けてくれれば幸いです

これが私のjsfiddleです

また、すべての価格を取得して合計する同じ更新ボタンで使用している別の jquery もここにあります。

<script type="text/javascript">
    $(document).ready(function () {
        $('.update').click(function () {
            var total = 0;
            $("span.price2").each(function (i) {
                total += parseFloat($(this).text(), 10);
            });

            $("#total2").html(total);
        });
    });
</script>
4

2 に答える 2

1

keypress イベントを使用できます。クリックするよりもきれいに見えます。

<span class="section">
  <p class="price">699.50</p>
  <input class="qtty" type="text">
  <span class="result">699.50</span>
</span>

<span class="section">
  <span class="price">1234</span>
  <input class="qtty" type="text">
  <span class="result">1234</span>
</span>

</p>

$('.qtty').keypress(function() {
  price = $(this).parent().find('.price').html()
  qtty = $(this).parent().find('.qtty').val()
  result = price * qtty
  $(this).parent().find('.result').html(result)
});​

ただの提案です。編集: http://jsfiddle.net/qU7ZG/の方が優れています。

于 2012-11-01T00:12:37.380 に答える
0

特定の DIV 内のクラス メンバーを検索するには、jQuery セレクターにコンテキスト パラメーターを使用します。

var total = 0;
$(".produktinfo2").each(function () {
    var that = $(this);
    var subtotal = parseFloat($(".quantity", that).text()) * parseFloat($(".price", that).text());
    $(".price2", that).text(subtotal);
    total += subtotal;
});
$("#total2").text(total);
于 2012-11-01T00:01:44.000 に答える