Вы правильно используете sessionStorage, но в этом фрагменте есть некоторые проблемы.Во-первых, при настройке элемента в sessionStorage вы каждый раз добавляете «корзину» в качестве ключа, так что это приводит к переопределению предыдущего значения, сохраненного, так как элементы в sessionStorage хранятся в виде пар «ключ-значение», а ключи должны быть уникальными, в противном случае обновляется предыдущее значение, сохраненное втот же ключ.
Итак, я добавил значение i с именем ключа 'cart' т.е. 'cart' + i.Вы можете использовать любой из уникальных ключей в соответствии с вашим вариантом использования.И, во-вторых, вместо того, чтобы получать конкретный ключ с помощью localStorage Использовать хранилище сессий (кажется, это опечатка)
Обновленный фрагмент
var list = [{
id: 1,
name: "Spaghetti",
price: 15,
category: "main",
pictureSrc: "images/food/spaghetti.jpg"
},
{
id: 2,
name: "Lasagne",
price: 20,
category: "main",
pictureSrc: "images/food/Lasagne.jpg"
},
{
id: 3,
name: "Coca-cola",
price: 5,
category: "drinks",
pictureSrc: "images/food/cola.jpg"
},
{
id: 4,
name: "Chicken",
price: 12,
category: "main",
pictureSrc: "images/food/chicken.jpg"
},
];
function InitializeFoodList() {
var foodList = $('#foodList');
for (let i = 0; i < list.length; i++) {
const element = list[i];
var buttonText = '<button class="btn btn-primary add" id="add' + i + '">+</button><button class="btn btn-primary" name="remove">-</button>';
foodList.append("<li class='list-inline-item'><h4>" + element.name + "</h4><p>" + element.price + " zł</p><img alt=''height='200' width='200' class='img-thumbnail' src='" + element.pictureSrc + "'><br>" + buttonText + "</li>");
$('#add' + i).click(function() {
sessionStorage.setItem("cart" + i, JSON.stringify(element));
});
}
}
function RetrieveDataFromCart() {
var elements = [];
for (let i = 0; i < sessionStorage.length; i++) {
var element = JSON.parse(sessionStorage.getItem(sessionStorage.key(i)));
elements.push(element);
console.log(element.name);
}
}