3 回答

TA貢獻1934條經(jīng)驗 獲得超2個贊
據(jù)我所知,沒有內(nèi)置的方法可以做到這一點,你應該手動完成;
function persist(thisArg) {
localStorage.setItem(thisArg.id, thisArg.value);
}
<input id="test" onchange="persist(this)" />
堅持并一起檢索:
function persist(event) {
localStorage.setItem(event.target.id, event.target.value);
}
// you may use a more specific selector;
document.querySelectorAll("input").forEach((inputEl) => {
inputEl.value = localStorage.getItem(inputEl.id);
inputEl.addEventListener("change", persist);
});
<input id="test" />

TA貢獻1770條經(jīng)驗 獲得超3個贊
沒有自動的方法可以做到這一點。你有兩個選擇:
通過代碼示例保存數(shù)據(jù)
:
localStorage.setItem('testObject', JSON.stringify(yourObject)); // for storing data
JSON.parse(localStorage.getItem('yourObject')); // for retrieving data
代碼片段:
// for saving data
function saveData(el) {
localStorage.setItem(el.id, JSON.stringify(el.value));
}
// for retrieving data on page load
function getData() {
var inp = document.getElementById("inp");
inp.value = JSON.parse(localStorage.getItem('inp')) || "";
}
<body onload="getData()">
<input id="inp" onchange="saveData(this)" />
</body>
嘗試像persisto這樣的輔助庫

TA貢獻1866條經(jīng)驗 獲得超5個贊
根據(jù)已接受的答案,以下是有用的一句話:
document.querySelectorAll('input:not([type="submit"])').forEach(elt => { elt.value = localStorage.getItem(elt.name); elt.addEventListener("change", e => { localStorage.setItem(e.target.name, e.target.value); }); });
<input>
它將s序列化/反序列化為localStorage
,并按其屬性進行索引name
。
- 3 回答
- 0 關注
- 191 瀏覽
添加回答
舉報