Сохранение данных продуктов в localStorage
window.addEventListener('click', function(event) {
if (event.target.classList.contains('card-btn') || event.target.classList.contains('adaptive-price')) {
const cardHTML = event.target.closest('.card');
const productInfo = {
img: cardHTML.querySelector('.card-img').className, // Используйте className
name: cardHTML.querySelector('.card-title').innerText,
desc: cardHTML.querySelector('.card-desc').innerText,
price: cardHTML.querySelector('.card-price').innerText,
};
const alreadyInStorageCart = JSON.parse(localStorage.getItem('productInfo')) || [];
localStorage.setItem('productInfo', JSON.stringify([...alreadyInStorageCart, productInfo]));
}
});
Генерация HTML из данных в localStorage
const cartCardBox = document.querySelector('.cart-card-box');
if (localStorage.length > 0) {
const products = JSON.parse(localStorage.getItem('productInfo'));
products.forEach((product, index) => {
const cartCardHTML = `
<li class="card" data-index="${index}">
<ul class="card-box">
<li class="${product.img}"></li>
<li class="card-content-box">
<ul>
<li class="delete-card-btn-box"><button class="delete-card-btn">Delete</button></li>
<li class="card-title">${product.name}</li>
<li class="card-desc">${product.desc}</li>
<li class="price">${product.price}</li>
</ul>
</li>
</ul>
</li>
`;
cartCardBox.insertAdjacentHTML('beforeend', cartCardHTML);
});
}
Удаление элемента по индексу
window.addEventListener('click', function(event) {
if (event.target.classList.contains('delete-card-btn')) {
const card = event.target.closest('.card');
const index = parseInt(card.dataset.index, 10); // Получите индекс из атрибута data-index
const products = JSON.parse(localStorage.getItem('productInfo'));
products.splice(index, 1); // Удаляет элемент по индексу
localStorage.setItem('productInfo', JSON.stringify(products)); // Сохраняем измененный массив обратно в localStorage
card.remove(); // Удаление HTML карточки
}
});