jQuery本地存储

时间:2018-03-10 15:41:15

标签: jquery arrays local-storage

我正在使用本地存储创建商店(假设)。我有这个代码保存你放入购物车的物品。它从按钮中设置的值中获取书籍的名称。

这存储在外部.js文件中。我遇到的问题是,我可以添加一本书,回到浏览页面,找到另一本书,但是当我添加一本书时,数组中没有任何内容,只显示第二本书。不确定为什么设置本地存储并且应该跨页维护?

2 个答案:

答案 0 :(得分:0)

因为您每次都将books声明为新数组。

var books = new Array();

相反,您应该尝试检索以前的图书数据,如果没有,则将其初始化为新数组。

var books;

try {
    books = JSON.parse(localStorage['myShopping']);
} catch (e) {
    books = array();
}

最后,代码如下所示:

$(document).ready(function () {
    var books;

    try {
        books = JSON.parse(localStorage['myShopping']);
    } catch (e) {
        books = array();
    }

    $('.book-button').click(function() {
        books.push($(this).val());
        localStorage["myShopping"] = JSON.stringify(books);
        var store = JSON.parse(localStorage["myShopping"]);
        console.log("new is " + store);
    });
});

答案 1 :(得分:0)

您想在clickStorage上将图书存储在点击事件中吗?

您需要执行以下操作

WITH SalesQTY AS
(
    SELECT 
        CustomerID, YEAR(OrderDate) Y
    FROM 
        Sales.SalesOrderHeader oh
    WHERE 
        YEAR(OrderDate) IN (2011, 2014)
)
SELECT CustomerID, Y, COUNT(Y)
FROM SalesQTY s
GROUP BY CustomerID, Y;

这将该书存储在“myShopping”下的localStorage中,并通过获取值在所有页面上查看:

localStorage.setItem('myShopping', JSON.stringify(books));

如果它是空的,它将返回null,所以总是首先检查它!