0

模擬ショッピングカートを作成していますが、カートを更新する機能に少し問題があります。ユーザーがショッピングカートに何かを追加すると、アイテム名と必要な数量がオブジェクトに保存されsessionStorageます。このupdateCart()関数は、このオブジェクトのデータを使用します。


1.オブジェクトをループして、sessionStorageアイテム名と数量を取得します
。2.数量に各アイテムの価格を掛けます。3
。すべてのアイテムの合計を1つの総計に合計します。

3番目の部分は注意が必要です。

HTML

<div id="Burger">6.50</div>
<div id="Cheeseburger">7.50</div>
<div id="Hotdog">4.00</div>

sessionStorageオブジェクト

{
    "Burger" : "2",
    "Cheeseburger" : "3",
    "Hotdog" : "1"
}

JavaScript

function updateCart() {

    var storage = window.sessionStorage;
    var sumtotal = 0;

    for ( var i in storage ) {

        var item = new Object();

        item.name = i;
        item.quantity = parseFloat( storage[i] );
        item.price = parseFloat( $("#" + item.name).text() );
        item.total = item.price * item.quantity;

        sumtotal = parseFloat( sumtotal + item.total );

        console.log(sumtotal);

    }
}

総計/合計を機能させることができないようです。ヘルプ?

4

2 に答える 2

2

それはこの行です:

sumtotal = parseFloat( sumtotal + item.total );

する必要があります:

sumtotal += parseFloat( item.total );

これで、の最後の値のみが取得されますitem.total

于 2012-11-30T18:54:37.840 に答える
1

これがsessionStorageの使用方法ではないと思います。代わりに、番号をホストするオブジェクト(たとえば、orderと呼ばれる)を作成する必要があります。

var storage=JSON.parse(sessionStorage.getItem("order"));

ライブデモをご覧ください。

于 2012-11-30T19:03:20.003 に答える