下面这段代码是在多个cookie中取得其中一个,我的问题是,怎样同时取得两个或以上的值?谢谢!
<script language="JavaScript" type="text/javascript"> 
<!-- 
//设置两个cookie 
document.cookie="userId=828"; 
document.cookie="userName=hulk"; 
//获取cookie字符串 
var strCookie=document.cookie; 
//将多cookie切割为多个名/值对 
var arrCookie=strCookie.split("; "); 
var userId; 
//遍历cookie数组,处理每个cookie对 
for(var i=0;i<arrCookie.length;i++){ 
var arr=arrCookie[i].split("="); 
//找到名称为userId的cookie,并返回它的值 
if("userId"==arr[0]){ 
userId=arr[1]; 
break; 


alert(userId); 
//--> 
</script> 

解决方案 »

  1.   


    var strCookie = document.cookie;
    var arrCookie = strCookie.split("; ");
    var cookieNames = {
    'name1' : '',
    'name2' : ''
    }
    for ( var i = 0; i < arrCookie.length; i++) {
    var arr = arrCookie[i].split("=");
    if (cookieNames.hasOwnProperty(arr[0])) {
    cookieNames[arr[0]] = arr[1];
    }
    }
    console.log(cookieNames);
      

  2.   

    我接着下面这样写:
    if("userId"==arr[0]){ 
    userId=arr[1]; }
    if("userName"==arr[0]){ 
    userId=arr[1]; }
    userId可以取到值,userName却取不到值,请教应该怎样写?
      

  3.   

    锅,你要取两个值,只用一个变量,你觉得可能达到你要的效果吗?
    你把我上面那段代码改下就行了。var cookieNames = {
        'userId' : '',
        'userName' : ''
    }cookieNames就是你要的结果
      

  4.   

    照你的写法不行啊,用如下的方法不行吗,能不能修改下?
    if("userId"==arr[0]){ 
    userId=arr[1]; 
    ...}
    if("userName"==arr[0]){ 
    userName=arr[1]; 
    ...}
    因为我要取得单个值,然后还有其它的内容。
      

  5.   


    你把cookieNames 那里先改下,改成下面那样
    var cookieNames = {
        'userId' : '',
        'userName' : ''
    }
    然后在上面那段代码的最后加上下面这句,看下是不是你要的结果。
    alert(cookieNames['userId']);
    alert(cookieNames['userName']);
      

  6.   

    多谢bbjbepzz!可以了,cookieNames.hasOwnProperty(arr[0])中hasOwnProperty是何意?然后可以这样写吗
    if("userId"==828){  
    ...}
    if("userName"==hulk){  
    ...}