Доброго всем времени суток !
у меня такая трудность, я делаю корзину - данные которые должны сохраняться в localStorage = при каждом клике на определенный товар - данные пишутся в объект, в объекте у меня есть массив - на кнопке есть артикул товара = удобно проверять, если такой артикул в массиве есть добавляем на 1++ если нет то создать в масив такой элемент с такими то данными. Функция работает в массив при i++ товар добавляется товар - но когда после проверки я вызываю функцию которая принимает объект с данными он его сохраняет - Но когда я обновляю страницу и попытаюсь добавить данные то они куда пропадают и в объект в котором есть массив снова добавляются как будто не чего я и не сохранял.
/**
TESTING THE SYSTEMS
JAVASCRIPT
UNIT-TESTING
===================
*/
/* start create cart*/
function run_cart() {
// save db cart
let pay = {};
showCart = document.querySelector(".addCart");
itemBox = document.querySelectorAll(".push");
showCart.onclick = showProducts;
// localStorage setter
function setCartData(o) {
localStorage.setItem('cart', JSON.stringify(o));
return false;
}
// localStorage getter
function getCartData() {
return JSON.parse(localStorage.getItem('cart'));
}
/**
* Adding and cheking cart
* true - add to current
* false - create Obj and save db
*/
function addToCard() {
let parentBox = this.parentNode,
_keyAttr = this.getAttribute("xid"),
item_title = parentBox.querySelector(".item_title p").innerHTML,
item_desc = parentBox.querySelector(".item_desc p").innerHTML,
price = parentBox.querySelector(".price").innerHTML;
// cheking obj
if (pay.hasOwnProperty(_keyAttr)) {
pay[_keyAttr][3] += 1;
} else {
pay[_keyAttr] = [item_title, item_desc, price, 1];
}
if (pay !== null) {
setCartData(pay);
}
}
// add event
for(let i = 0; i < itemBox.length; i++) {
itemBox[i].addEventListener("click", addToCard);
}
}
run_cart();