javascript中的客户端cookie
长期用户第一次海报。当书籍让我失望时,这个网站给了我很多答案。回答我的问题 我正在尝试创建一个购物车。每次单击subit/add按钮时,我都想创建一个新的cookie。我以为我能用这段代码做到这一点javascript中的客户端cookie,javascript,cookies,Javascript,Cookies,长期用户第一次海报。当书籍让我失望时,这个网站给了我很多答案。回答我的问题 我正在尝试创建一个购物车。每次单击subit/add按钮时,我都想创建一个新的cookie。我以为我能用这段代码做到这一点 var cookieName = document.cookie; var splitCookieName; splitCookieName = cookieName.split(";"); for( var i =0; i <= splitCookieName.length; i++) {
var cookieName = document.cookie;
var splitCookieName;
splitCookieName = cookieName.split(";");
for( var i =0; i <= splitCookieName.length; i++)
{
var cartItemNumber;
if (splitCookieName[i].slice(0,8) == "cartItem")
{
cartItemNumber = parseInt(splitCookieName[i].slice(8));
alert(cartItemNumber);
itemCount = cartItemNumber + 1;
alert(itemCount);
}
}
var newItem = "cartItem" + itemCount;
setCookie(newItem, "", expiryDate);
但是,每次我运行它时,它只会提醒我cartitemnumber为1,ItemCount为2。所以我想我的问题是为什么它总是一加二?我想我读到一些东西说,这是因为它不在服务器上,所以它的行为不同。这是真的吗?或者我的代码中有错误,我看不到
项目计数的初始值为1
我还遇到了获取此代码中最后一个警报的问题。google chrome甚至不喜欢它,也不会运行它,allSelects[i].id存在问题,出于某种原因不喜欢选项部分。然而,当我在firefox中运行时,它不会提醒我最后一行。但是,如果我把这条线放在for循环中,它就会一遍又一遍地运行。代码在这里
setCookie(newItem, "", expiryDate);
productType = document.getElementById("product");
priceType = document.getElementById("price");
setField(newItem, productType.id, productType.value, expiryDate);
setField(newItem, priceType.id, priceType.value, expiryDate);
allSelects = new Array;
allSelects = document.getElementsByTagName("select");
for(var i = 0; i <= allSelects.length; i++)
{
setField(newItem, allSelects[i].id, allSelects[i].options[allSelects[i].selectedIndex].text, expiryDate);
}
alert(getField(newItem, "quantity") + " " + getField(newItem, "product") + " added to your shopping cart.");}
非常感谢您的帮助。解决了我自己的问题。我正在着手在拆分后添加一个空格;B我在做a,虽然我的最后一个警报仍然不想工作。