我需要帮助制作一个具有很多不同价值的cookie。到目前为止,我有这个。
function makeCookie(key, value) {
document.cookie= key + "=" + value + "; path=/";}
//event listener to kick off the cookie function
var style1button = document.getElementById('style1');
style1button.addEventListener('click',function ()
{makeCookie('style','style1')},false);
//event listener to kick off the cookie function
var style2button = document.getElementById('style2');
style2button.addEventListener('click',function(
{makeCookie('style','style2')},false);
我将要添加更多内容,我最终需要制作一个多一个样式的cookie,但我不确定如何将多个键值传递到我设置的相同功能中。或者它实际上只是组成新名称而不是
makeCookie(key, value)
我可以吗
makeCookie(key1, value1, key2, value2......)
如果这很容易我道歉,我是新来的。在查看来自多个站点的document.cookie信息后,我无法找到任何有意义的信息。
答案 0 :(得分:0)
虽然我建议切换到localStorage
,如果你想支持变量参数,我建议你将参数切换到一个对象{ key: "foo", value: "bar" }
,然后使用类似数组的arguments
对象迭代,然而传递了许多:
// I usually put a comment showing an example of the argument(s) when
// allowing a variable number of arguments
function makeCookie(/* { key: "foo", value: "bar" }, { ... } */) {
for (var i = 0; i < arguments.length; i++) {
document.cookie= arguments[i].key + "=" + arguments[i].value + "; path=/";
}
}
makeCookie({ key: "foo", value: "bar" });
makeCookie({ key: "style1", value: "styleValue" }, { key: "style2", value: "styleValue2" });
答案 1 :(得分:0)
我建议使用清除cookie的功能(如果需要)和添加cookie的功能:
function clearCookies () {
document.cookie = "";
}
function addCookie (key, value) {
document.cookie += key + "=" + value + "; path=/";
}
答案 2 :(得分:0)
是的,你可以这样做: makeCookie(key1,value1,value2,value3 ......)
JS中的函数基本上都有“参数”对象。因此,要实现上述功能,您的makeCookie功能应如下所示:
function makeCookie(){
var key = arguments[0];
var value;
for (var i = 1; i < arguments.length; i++) {
var tempValue = arguments[i];
//write a logic here to represent the multiple values into one value
}
document.cookie= key + "=" + value + "; path=/";
}
注意:上面的代码假定您在调用函数时始终将key作为第一个参数传递。