我试图推
titles.push(title);
但是当我尝试运行它时出现错误:titles.push不是函数。
完整代码:
var title = prompt("What would you like your title to be?");
localStorage.setItem(title, editElem.innerHTML);
var titles = localStorage.getItem("titles");
if(titles == null)
titles = new Array();
if(titles.indexOf(title) < 0)
titles.push(title);
localStorage.setItem("titles", titles);
}
答案 0 :(得分:0)
本地存储只能存储字符串,而不能存储数组:
localStorage.setItem(keyName, keyValue);
<强>的keyName 强>
一个DOMString,其中包含您要创建/更新的密钥的名称。<强>的keyValue 强>
一个DOMString,其中包含您要为您创建/更新的密钥提供的值。
这意味着您需要将数组的序列化字符串表示形式保存到localStorage
,同样,在检索时反序列化数组。幸运的是,JavaScript有一些内置的工具,可以使用[JSON.parse][3]
和[JSON.stringify][3]
为您执行此操作。
这样的事情:
var title = prompt("What would you like your title to be?");
var titles = JSON.parse(localStorage.getItem('titles') || '[]');
if(titles.indexOf(title) < 0) {
titles.push(title);
}
localStorage.setItem("titles", JSON.stringify(titles));