我如何从另一个函数获取对象

时间:2019-12-06 00:48:42

标签: javascript arrays json shopping-cart

我正在尝试使用HTML和JS制作购物车。所以我在用(https://www.smashingmagazine.com/2019/08/shopping-cart-html5-web-storage/)。 在我的函数save()中,我有

`function save(id, title, price) {
    // var button = document.getElementById('button');
    // button.onclick=function(){
        // var test = localStorage.setItem('test', id);
        window.location.href='/panier'
        var obj = {
            title: title,
            price: price
        };
        localStorage.setItem(id, JSON.stringify(obj));
         var test = localStorage.getItem(id);
        var getObject = JSON.parse(test);
        console.log(getObject.title);
        console.log(getObject.price);
}`

例如,要获得“标题”,我的函数save()没问题,但是在我的函数doShowAll()中没有问题,

function CheckBrowser() {
    if ('localStorage' in window && window['localStorage'] !== null) {
        // We can use localStorage object to store data.
        return true;
    } else {
        return false;
    }
}
function doShowAll() {
    if (CheckBrowser()) {
        var key = "";
        var id = localStorage.getItem(id);
        var list = "<tr><th>Item</th><th>Value</th></tr>\n";
        var i = 0;
        //For a more advanced feature, you can set a cap on max items in the cart.
        for (i = 0; i <= localStorage.length-1; i++) {
            key = localStorage.key(i);
            list += "<tr><td>" + key + "</td>\n<td>"
                    + localStorage.getItem(key) + "</td></tr>\n";
        }
        //If no item exists in the cart.
        if (list == "<tr><th>Item</th><th>Value</th></tr>\n") {
            list += "<tr><td><i>empty</i></td>\n<td><i>empty</i></td></tr>\n";
        }
        //Bind the data to HTML table.
        //You can use jQuery, too.
        document.getElementById('list').innerHTML = list;
    } else {
        alert('Cannot save shopping list as your browser does not support HTML 5');
    }
}

我无法得到我的对象。 我尝试过:

if (CheckBrowser()) {
            var key = "";
            var id = localStorage.getItem(id);
            var getObject = JSON.parse(test);
    }
            var list = "<tr><th>Item</th><th>Value</th></tr>\n";
            var i = 0;
            //For a more advanced feature, you can set a cap on max items in the cart.
            for (i = 0; i <= localStorage.length-1; i++) {
                key = localStorage.key(i);
                list += "<tr><td>" + key + "</td>\n<td>" + getObject.title
                        + localStorage.getItem(key) + "</td></tr>\n";
            }

但是当我在“ list + =”中添加除key或localStorage.getItem(key)以外的内容时,我的html视图中什么也不会显示。

所以我只想在doShowAll()函数的PHP数组中显示来自对象的数据。 希望能得到明确的答复。谢谢

0 个答案:

没有答案