0

ユーザーがボタンをクリックしてテーブル行を追加できるようにする ID「roster1」の HTML テーブルがあり、次のコードを実行する「保存」ボタンを使用してテーブルの状態を保存しようとしています。

function saveRoster () {
        localStorage.setItem('rosterPd1','');
        var roster = document.getElementById ('roster1');
        localStorage.setItem('rosterPd1', roster);
        }

「rosterPd1」に静的な値を入力すると、localStorage に書き込まれた情報を問題なく使用できます。ただし、上記のコードを使用してテーブルを保存しようとすると、[object HTMLTableElement] が返されます...これは正しいですが、特に役に立ちません!

テーブル自体の内容を保存するために localStorage を取得するために私がしなければならないことについて、誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

1

StringsのみをStorageに保存できますが、やろうとしていることには、innerHTMLで十分です。

function saveRoster() {
    var roster = document.getElementById('roster1');
    if (!roster) return; // not found
    localStorage.setItem('rosterPd1', roster.innerHTML); // store innerHTML
}
function loadRoster() {
    var roster = document.getElementById('roster1');
    if (!roster) return; // not found
    roster.innerHTML = localStorage.getItem('rosterPd1'); // get+apply innerHTML
}

を取得している理由については[object HTMLTableElement]toStringJavaScript参照<table>.

document.createElement('table').toString() // "[object HTMLTableElement]"
于 2013-07-11T19:57:15.197 に答える