我正在处理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');
}
所以它给我输出你去,所以我不明白为什么它发生? 请帮助我,并告诉其他一些比较方式.. Tahnks提前:)
答案 0 :(得分:3)
尝试使用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
非常相似。它迭代对象的可枚举属性,以任意顺序。对于每个不同的属性,可以执行语句。 (要了解有关此功能的更多信息,请click here。)
我根据Botis'答案使用的trim()
函数 - 它会从字符串中删除所有空格。