В настоящее время у меня есть следующий код, который добавляет элементы в 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>