0
function changesex(){
    var cookie=document.cookie;
    var sex;
    //alert(cookie);
    cooarr=cookie.split(";");
    for (var i=0;i<cooarr.length;i++){
        coo=cooarr[i].split("=");
        if (coo[0]=="sex"){
            sex=coo[1];
            break;
        }
    }
    if (sex=="male") sex="famale";
    else sex="male";
    var date=new Date();
    date.setTime(date.getTime()+3600*24*30);
    document.cookie="sex="+sex+";expires="+date.toGMTString();
    return sex;
}

このjavascript関数はCookieの内容を変更するために使用されますが、この式if(coo [0] == "sex"){がtrueになるのは、i==0でcoo[0]が次の文字列に等しい場合のみであるという問題があります。 。したがって、問題は、coo[0]が"xxx"文字列と等しい場合でもif式が真にならないことです。私はこれに数時間を費やしました、そして私は混乱しました。

4

2 に答える 2

0

document.cookieを取得して「;」で分割すると、答えが返ってきました。Cookieの名前の文字列の前にスペースがあります。たとえば、「sex」は「sex」になります。正確な理由はわかりません。でも今はクッキーを扱えません。

于 2012-08-03T16:26:52.920 に答える
0

後半に中括弧のセットがありませんか?後:if(sex == "male")?

于 2012-08-03T03:47:21.870 に答える