0

我正在处理 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 :)

4

1 回答 1

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 名称)。

对知识

A 的工作原理与normalforeach非常相似。它以任意顺序迭代对象的可枚举属性。对于每个不同的属性,可以执行语句。(要了解有关此功能的更多信息,请单击此处。) for

trim()我根据Botis的回答使用的函数——它从字符串中删除所有空格。

于 2013-07-18T14:03:23.483 回答