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は通常foreachの と非常によく似た働きをします。オブジェクトの列挙可能なプロパティを任意の順序で反復処理します。個別のプロパティごとに、ステートメントを実行できます。(この機能の詳細については、ここをクリックしてください。) for

Botistrim()の回答に基づいて使用した関数—文字列からすべての空のスペースを削除します。

于 2013-07-18T14:03:23.483 に答える