html javascript中的购物车问题

u5rb5r59  于 2022-12-16  发布在  Java
关注(0)|答案(1)|浏览(120)

我做了一个网站的购物车,当我有项目在购物车我试图创建的选择,把他们从它(删除)。问题是,当我按下删除所有按钮时,它工作得非常好(本地存储.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();
    }

Cart

6l7fqoea

6l7fqoea1#

也许解决办法是用localstorage.removeItem()替换函数EliminarProductoLocalStorage中的最后一行?因为我不明白为什么要在函数中设置一个项,而你想从本地存储中删除它。😊

相关问题