我有一个脚本,当你按下按钮时随机显示div。我想制作一个愿望清单页面,以便人们跟踪他们喜欢的内容。 我已经设置了一天的会话和cookie。这是我的剧本,它不起作用,但我不知道为什么......感谢您的帮助。
$(".places").hide();
$("#button").click(function(){
"use strict";
var randomNumber = Math.floor(Math.random()*45);
var selectedDiv = "#place" + randomNumber;
$('.places').hide().filter(selectedDiv).show();
$(".wishlistbutton").click(localStorage.setItem(selectedDiv,JSON.stringify(wishlist)));
});
var wishlistkey = "wishlist";
var wishlist = localStorage.getItem(wishlistkey);
if($.isEmptyObject(wishlist)){
wishlist = new Array()
} else {
wishlist = JSON.parse(wishlist);
}
答案 0 :(得分:0)
$.isEmptyObject
方法不能按预期工作,因为您提供了一个字符串作为参数(期望的参数类型是一个普通的JS对象),实际上这在您的代码中是不必要的。
var wishlist = localStorage.getItem(wishlistkey);
if(!wishlist){
wishlist = new Array()}
else {
wishlist = JSON.parse(wishlist);
}
虽然您需要将密钥为wishlist
而不是div id存储在localStorage中的JSON字符串。
localStorage.setItem('wishlist', JSON.stringify(wishlist))
答案 1 :(得分:0)
看起来你正在调用localStorage setItem并传入一个键,即div的名称(selectedDiv),但是你在一个名为“wishlist”的键上尝试getItem尝试在存储中设置项目此
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="Textbox1" runat="server" Text='<%# Eval("Quantity") %>'
visible= '<%# String.IsNullOrEmpty(DirectCast(Gridview1.Rows(Container.DisplayIndex).FindControl("Textbox1"), TextBox).Text) %>'>
</asp:TextBox>
</ItemTemple>
</TemplateField>