2

我正在尝试使用 jquery 的 json 创建一个 cookie 数组。这是迄今为止工作的脚本,除了数组部分。有人可以告诉我如何做这样的数组......

    <script type="text/javascript">

       //The database value will go here...
       var cookievalue= {'tid1':'ticvalue1','thid1':'thidvalue1','tid2':'ticvalue2','thid2':'thidvalue2'};

       //Create a cookie and have it expire in 1 day.
       $.cookie('cookietest', cookievalue, { expires: 1 });

       //Write the value of the cookie...
       document.write($.cookie('cookietest'));

    </script>

我遇到的问题是当我将数组传递给它存储的 cookie[object object]而不是数组值时。因此,如果我遍历数据,那么我将使用多个 cookie 而不是一个 cookie,其中的数组值存储在

4

2 回答 2

0

我遇到的问题是,当我将数组传递给 cookie 时,它​​存储的是 [object object] 而不是数组值。因此,如果我遍历数据,那么我将使用多个 cookie 而不是一个存储数组值的 cookie。

现在你说白了!所以我们可以在没有成千上万条评论的情况下为您提供帮助;)


    <!DOCTYPE html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script src="../js/jquery-1.7.2.js" type="text/javascript"></script>
    <script src="https://raw.github.com/douglascrockford/JSON-js/master/json2.js" type="text/javascript"></script>
    <script src="https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js" type="text/javascript"></script>
    </head>
    <body>
        <script>
            $(function() {
                var cookieValueString = JSON.stringify( 
                    [
                        {
                            'column1':'row1col1',
                            'column2':'row1col2'
                        },
                        {
                            'column1':'row2col1',
                            'colum2':'row2col2'
                        }
                    ] 
                );
                $.cookie('cookietest', cookieValueString, { expires: 1 });

                var arrayFromCookie = JSON.parse($.cookie('cookietest'));
                for(var i = 0; i < arrayFromCookie.length; i++) {
                    alert("Row #" + i
                           + "- Column #1: " + arrayFromCookie[i].column1
                           + " - Column #2: " + arrayFromCookie[i].column2);
                }
            });
        </script>
    </body>
    </html>
于 2012-08-14T06:55:47.680 回答
0

您正在创建一个具有这些属性的对象。而且您使用的是单引号而不是双引号(据我所知,您必须在 json 中指定一个带双引号的字符串)。

试试看:

      var cookievalue= [{"tid1":"ticvalue1"},{"thid1":"thidvalue1"},{"tid2":"ticvalue2"},{"thid2":"thidvalue2"}];

所以解析后你会得到以下信息:结构

cookievalue[0].tid1 == "ticvalue1"<br/>
cookievalue[1].thid1 == "thidvalue1"<br/>
cookievalue[2].tid2 == "ticvalue2"<br/>
cookievalue[3].thid2 == "thidvalue2"<br/>
于 2012-08-13T09:00:26.613 回答