我正在处理javascript cookie,我的cookie名称是
ssecname
所以我想用这个代码搜索我的cookie
function readcookie() {
var allcookies = document.cookie;
var cookiearray = allcookies.split(';');
for(var i = 0; i<=cookiearray.length; i++)
{
name = cookiearray[i].split('=')[0];
coo_glo_value = cookiearray[i].split('=')[1];
alert(name); /* here it shows name value is equal to ssecname but not comparing below */
if(name == "ssecname") /* i have tried === */
{
alert('here you go');
}
}
}
我不知道为什么不比较我的字符串,但当我做时
if(name != "ssecname")
{
alert('here you go');
}
所以它给了我输出,所以我不明白为什么会发生??请帮帮我,并告诉我一些其他的比较方法。。提前通知:)
尝试使用foreach
:
function readCookie() {
var cookies = document.cookie;
var cookieBundle = cookies.split(';');
for(var i in cookies) {
var name = cookieBundle[i].split('=')[0],
cookieValue = cookieBundle[i].split('=')[1];
if(name.trim() == "csrftoken") {
alert("Here you go.");
}
}
}
readCookie();
你可以在jsFiddle上玩这个。
(注意:在比较中更改您的cookie名称)。
到知识
foreach
的工作原理与法线for
非常相似。它以任意顺序迭代对象的可枚举属性。对于每个不同的属性,都可以执行语句。(要了解有关此功能的更多信息,请单击此处。)
我使用的trim()
函数基于Botis的答案——它从字符串中删除了所有空格。