【问题标题】:Problem with variable in jQuery (undefined) even when I check if it existjQuery中的变量问题(未定义)即使我检查它是否存在
【发布时间】:2020-03-16 15:40:23
【问题描述】:

这是我的代码,如果遇到问题:

// WORKS
    var cart;
    var productlist = JSON.parse(localStorage.getItem('cart'));
// But if localStorage is empty go an error "productlist = undefined
// This was the solution, where I'm thinking about, but without success
    if (typeof productlist !== "undefined") {
        var productlist = JSON.parse(localStorage.getItem('cart'));
    }else{
        var productlist = [];
    }

    $('#addtocard').on('click', function(e) {

        $('#bill-table > tbody > tr').each(function() {

            if(product === undefined) {
                var product = {};
            }

            product.naam = $(this).children('.naam').html();
            product.type = $(this).data('type');
            product.id = $(this).data('productid');

            productlist.push(product);
        });

        console.log('--------------');
        console.log('ProductList:'+JSON.stringify(productlist));
        console.log('LocalStorage:'+localStorage.getItem('cart'));

        localStorage.setItem("cart", JSON.stringify(productlist));
        $('#json_producten').val(JSON.stringify(productlist));

        e.preventDefault();
    });

    ////////////////////////////////////////////////////
    $('#json_producten').val(localStorage.getItem('cart'));

    console.log('--------------');
    console.log('ProductList:'+JSON.stringify(productlist));
    console.log('LocalStorage:'+localStorage.getItem('cart'));

哪个部分有效:如果您将单个产品放入购物车,则没有问题。如果您将一件商品两次放入购物车中,则没有问题。然后在一个数组中返回两个产品。

问题是,如果您将产品一放入购物车,然后转到另一个页面,隐藏的输入字段“#json_producten”会显示正确的购物车(产品一在里面)但是如果您在产品 2 上按 addtocard btn她否决了当前的购物车。

谁能帮帮我?

【问题讨论】:

  • 无法了解您遇到了什么问题以及在哪里?也不确定“在产品 2 上她否决了当前购物车”是什么意思。
  • 如果您从产品 A 开始并将其放入购物车中,则可以,如果您将产品 A 两次放入购物车中,则没有问题。 #json_producten 的值是 Product A 的两倍。但问题是您将产品 A 放入购物车而不是导航到产品 B 并将其放入购物车,而不是产品 A(两次)消失了,只有产品 B 在购物车中。希望你明白我的意思。

标签: jquery arrays json local-storage


【解决方案1】:

变化:

if (typeof productlist !== "undefined") {
    var productlist = JSON.parse(localStorage.getItem('cart'));
}else{
    var productlist = [];
}

收件人:

if(localStorage.getItem('cart') == null){
    productlist = [];
}else{
    productlist = JSON.parse(localStorage.getItem('cart'));
}

这是解决方案,但如果有更好的方法,请告诉我!

【讨论】:

  • var productlist = JSON.parse(localStorage.getItem('cart') || '[]') 一个班轮
  • var productlist = []; if (localStorage.getItem('cart')) { productlist = JSON.parse(localStorage.getItem('cart')); }
猜你喜欢
  • 2018-09-09
  • 2020-06-06
  • 1970-01-01
  • 1970-01-01
  • 2018-05-26
  • 1970-01-01
  • 2014-01-23
  • 2019-05-11
  • 2014-01-30
相关资源
最近更新 更多