我做了一个网站的购物车,当我有项目在购物车我试图创建的选择,把他们从它(删除)。问题是,当我按下删除所有按钮时,它工作得非常好(本地存储.clear),但是,当我按下X(手动删除一个项目)当我刷新页面时,它再次显示,并且它从未从localeStorage中删除。这是我正在使用的方法:
// this method deletes one item from the cart (not in the LS)
eliminarProducto(e) {
e.preventDefault();
let producto, productoID;
if (e.target.classList.contains('borrar-producto')) {
e.target.parentElement.parentElement.remove();
producto = e.target.parentElement.parentElement;
productoID = producto.querySelector('a').getAttribute('data-id');
}
this.eliminarProductoLocalStorage(productoID);
this.calcularTotal();
vaciarCarrito(e) { // this method clears the cart (not in LS)
e.preventDefault();
while (listaProductos.firstChild) {
listaProductos.removeChild(listaProductos.firstChild);
}
this.vaciarLocalStorage();
return false;
}
eliminarProductoLocalStorage(productoID) {// this method deletes the selected item from the LS
let productosLS;
//Obtenemos el arreglo de productos
productosLS = this.obtenerProductosLocalStorage();
//Comparar el id del producto borrado con LS
productosLS.forEach(function (productoLS, index) {
if (productoLS.id === productoID) {
productosLS.splice(index, 1);
}
});
//Añadimos el arreglo actual al LS
localStorage.setItem('productos', JSON.stringify(productosLS));
}
vaciarLocalStorage() {// clears the cart (in LS)
localStorage.clear();
}
1条答案
按热度按时间6l7fqoea1#
也许解决办法是用localstorage.removeItem()替换函数EliminarProductoLocalStorage中的最后一行?因为我不明白为什么要在函数中设置一个项,而你想从本地存储中删除它。😊