0

私はこれをしばらく試していましたが、オンラインで何も見つかりませんでした...

テーブル行がテーブルに追加されるプロジェクトがあります。正常に動作します。

ここで、テーブルを localStorage に保存したいので、もう一度ロードできます。(既存のテーブルを上書きします)。

 function saveProject(){
                //TODO: Implement Save functionality
            var projects = [];
            projects.push($('#tubes table')[0].innerHTML);
            localStorage.setItem('projects', projects);
          //console.log(localStorage.getItem('projects'));

問題は、配列「プロジェクト」に(1回の保存後)2000以上の要素があることです。しかし、私が望むのは、テーブル全体を最初の (または後で追加する) インデックスに保存することだけです。

最後に、さまざまな保存を Option 要素にリストする必要があります。

    function loadSaveStates(){
     alert('loading saved states...');
     var projects = localStorage.getItem('projects');
     select = document.getElementById('selectSave'); //my Dropdown
     var length = projects.length,
         element = null;
     console.log(length);

     for (var i = 0; i < length; i++) {

        element = projects[i];
        var opt = document.createElement('option');
        opt.value = i;
        opt.innerHTML = 'project ' + i;
        select.appendChild(opt);

    } 
}

誰が私が間違っているのか教えてもらえますか?

4

2 に答える 2

0

私は localStorage にとどまることにしましたが、配列を使用する代わりに、ユーザーにすべてのプロジェクトに名前を付けさせ、保存ごとに新しい項目を作成させました。

    function saveProject(){
   //TODO: Implement Save functionality
            var pname=prompt("Please enter your project name:","projectname")
            var text = $('#mainTable')[0].innerHTML;
            //console.log(text);
            localStorage.setItem(pname, text);
            //console.log(localStorage.key(2));
            loadSaveStates();
        }

function loadProject(){
    var selected = $('#selectSave')[0].selectedIndex
    //console.log(selected);
    if (localStorage.key(selected) == 'jStorage'){
            selected++;
    }
        var innerHTMLTable = localStorage[localStorage.key(selected)];
        //console.log(innerHTMLTable);
        $('#mainTable')[0].innerHTML = innerHTMLTable;

    updateHandlers();
}

function deleteProject(){
    var selected = $('#selectSave')[0].selectedIndex
    var pname = $('#selectSave')[0].options[selected].value

    $('#selectSave')[0].remove(selected);
    localStorage.removeItem(pname);

    //console.log(pname);
    loadSaveStates();
}
于 2013-10-30T09:50:35.280 に答える
0

あなたはこれを簡単に行うことができますjquery.これに興味がありますか?もしそうなら..次のコードを試してください.

値の設定について

$.jStorage.set("projects", $.trim(projects));

データ取得用

$.jStorage.get("projects");

キー付きデータを削除する場合

$.jStorage.deleteKey("projects");
于 2013-10-29T10:53:07.890 に答える