我想通过它的键而不是名字来获取cookie值,但第一个键给我最后一个cookie,第二个键从最后一个等等获得第二个等等,所以我颠倒了数组。那为什么不起作用?
function getByKey(key){
var cookies = document.cookie.split(";");
var rev = cookies.reverse();
return rev[key];
}
getByKey(2);
http://codepen.io/tarranjones/pen/FIzlt
任何想法。
答案 0 :(得分:1)
您的getByKey()
函数可能会运行正常,但您没有在codepen中使用它。
a = document.cookie.split(';')
s = a.reverse();
reverse()
会改变原始数组,因此您最终会反转a
并将s
指向同一个(反向)数组。
可能最简单的方法是对数组进行反转复制:
for( var i = a.length - 1, j = 0; i >= 0; --i, ++j ) {
s[ j ] = a[ i ];
}
Codepen:http://codepen.io/anon/pen/vwErt
答案 1 :(得分:1)
尝试使用控制台进行调试:
console.log(document.cookie.split(";")[1]);
console.log(getByKey(1));
另外,我的codepen与你的功能(差异很小)有效。
替换这段代码;
var cookies = document.cookie.split(";");
var rev = cookies.reverse();
return rev[key];
使用此块
var cookies = document.cookie.split(";");
return cookies.reverse()[key];