Невозможно удалить sessionStorage по значению идентификатора - PullRequest
0 голосов
/ 13 февраля 2019

В настоящее время у меня есть следующий код, который добавляет элементы в sessionStorage и работает OK

<script>
    $(document).ready(function () {
        $('.btnProduct').on('click',function (e) {
            e.preventDefault();

            var id = $(this).data("id");
            var title = $(this).data("title");
            var rawPrice = $(this).data("price");
            var cart = sessionStorage.getItem("cart");
            var obj = [];
            if (cart) {
                obj = JSON.parse(cart);
            }
            obj.push({ "id": id, "title": title, "price":rawPrice });
            sessionStorage.setItem("cart", JSON.stringify(obj));
        });
        function populateContainer() {
            var retrieveCartFromSessionStorage  = sessionStorage.getItem("cart");
            var displayCartInSessionStorage     = JSON.parse(retrieveCartFromSessionStorage);

            var total = 0;
            for (var p in displayCartInSessionStorage) {
                if (displayCartInSessionStorage.hasOwnProperty(p)) {
                    $(".itemsInCart").append('<p>' + displayCartInSessionStorage[p].title + ' ' + '£' + displayCartInSessionStorage[p].price.toFixed(2) + '</p>');
                    total += displayCartInSessionStorage[p].price;
                }
            }
            var displayTotal = total;

            var displayTotalPlusPriceOfAircraft = displayTotal += 100000;
            $("#displayTotal").text(`Total £${displayTotalPlusPriceOfAircraft.toFixed(2)}`);
        }

        populateContainer();

    });
</script>

Проблема, с которой я столкнулся, заключается в том, что при попытке удалить элемент из sessionStorage он попадает в эту строку:

для (var i = 0; i

, а затем пропускает остальное, у кого-то есть свежая пара глаз, чтобы увидеть, что я делаюнеправильно

<script>
    $(document).ready(function () {
        function removeItem(id) {
            var index = -1;
            var obj1 = JSON.parse(sessionStorage.getItem("cart")) || {};
            var items = obj1.cart || [];
            for (var i = 0; i < items.length; i++) {
                if (items[i].id === id) {
                    alert(id);
                    items.splice(i, 1);
                    break; 
                }
            }
            sessionStorage.setItem("cart", JSON.stringify(obj1));
        }
        removeItem("000f1834-8694-465d-ba89-2bf45e3ce132");
    });
</script>
...