我正在使用本地存储创建商店(假设)。我有这个代码保存你放入购物车的物品。它从按钮中设置的值中获取书籍的名称。
这存储在外部.js文件中。我遇到的问题是,我可以添加一本书,回到浏览页面,找到另一本书,但是当我添加一本书时,数组中没有任何内容,只显示第二本书。不确定为什么设置本地存储并且应该跨页维护?
答案 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,所以总是首先检查它!