1

首先,在我的站点中,DIV 是动态添加的,具有唯一的 ID(如 div0、div1、div2 ...)。这些 DIV 可以由用户添加或删除:添加时,数组存储 DIV 唯一 ID;删除时,相同的数组会删除 DIV id。所有这些 DIV 都有很多输入字段,我想存储这些内容(即使它是空白的)。我已经搜索了一个解决方案,我发现了类似的东西:

var numCookies=0;
function setCookie(){
    var name;
    for(var i=0; i<arrayDivs.length; i++){//ArrayDivs is the array with the DIV id's.
          name='cookie'+numCookies;
          $.cookie(name, $('#'+arrayDivs[i]).html(),{expires:10});                 
          numCookies++;                                                         
    }
} 

当我尝试“显示”(警报) - 例如 - 'cookie0' 时,警报为“null”。

name='cookie0';
alert(name);
var myCookie=($.cookie(name));
alert(myCookie); //here the alert is 'null'

至少创建了 1 个 div,因此“arrayDivs”不为空,并创建了“cookie0”。显然我做错了什么(非常错误哈哈)。如何将 DIV(及其所有内容)存储在 cookie 中?如果这个实现不是完全错误的,我该如何解决?提前致谢。

4

3 回答 3

0

试试这个

http://jsfiddle.net/aiioo7/zSBnG/

为 div 使用公共类并使用以下代码块。

JS代码:-

var numCookies = 0;

$(function () {
    $(".cookieClass").each(function () {
        name = 'cookie' + numCookies;
        $.cookie(name, $(this).html(), {
            expires: 10
        });
        numCookies++;
    });

    $("#btnCookie").on("click",function(){
        alert("Cookie 0 : " +$.cookie("cookie0"));
        alert("Cookie 1 : " +$.cookie("cookie1"));
        alert("Cookie 2 : " +$.cookie("cookie2"));
    });

});

HTML 代码:-

<div id="div0" class="cookieClass">val1</div>
<div id="div1" class="cookieClass">val2</div>
<div id="div2" class="cookieClass">val3</div>


<input type="button" id="btnCookie" value="Show Cookie"></input>
于 2013-03-19T14:10:59.903 回答
0

你可以通过迭代获得cookies

var nameEQ = 'cookie0' ;
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) 
             result=c.substring(nameEQ.length,c.length);//this will be the cookie0 :)
}
于 2013-03-19T13:49:39.407 回答
0

你可以先试试这个简单的例子来开始:

// set
$.cookie("cookie", $('#dvContainer').html())

// get
var content = $.cookie("cookie");
var $dvContainer = $('<div class="">' + content + '</div>');

$('body').append($dvContainer);

演示在这里

于 2013-03-19T13:50:55.583 回答