1

まず、私のサイトでは、一意の ID (div0、div1、div2 など) を使用して DIV が動的に追加されます。これらの 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/adiioo7/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

最初に次の簡単な例を試してみてください。

// 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 に答える
0

繰り返しでクッキーを取得できます

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 に答える