【发布时间】:2018-07-28 20:17:02
【问题描述】:
我要做的是获取用户的电子邮件和姓名输入并将其 .push 到数组电子邮件簿中,它确实将电子邮件和姓名的 .values 推送到数组中,但是每当我将其存储到本地存储中时,它替换了现有的数组。请帮忙,谢谢!!
<script>
document.addEventListener("DOMContentLoaded",docIsReady);
var emailbook;
function docIsReady(){
emailbook=localStorage.getItem("emailbook");
if (emailbook==null){
emailbook=[];
console.log(emailbook)
}
else {
emailbook=JSON.parse(emailbook);
console.log(emailbook)
}
}
function store() {
var name = document.getElementById("name").value;
var email = document.getElementById("email").value;
var obj = {"name": name, "email": email};
emailbook.push(obj);
localStorage.setItem("email", JSON.stringify(emailbook));
}
console.log(localStorage);
//var storedemail = JSON.parse(localStorage.getItem("email"));
</script>
【问题讨论】:
-
替换现有数组是什么意思?它是否使 emailbook 中的其他属性无效?
-
localStorage 属性是只读的,因此您无法对其进行编辑。只有
save、read和remove可用于localStorage。 -
localstorage按key存储值,你用同一个key设置,当然会替换旧值。
-
我假设您打算使用
emailbook作为键,例如localStorage.setItem("emailbook", JSON.stringify(emailbook)); -
@GeorgeDaniel 通过替换现有数组,我指的是 var emailbook,例如 emailbook = {"abc@xyz.com"},问题是当我输入新电子邮件时,它会替换 {"abc@ xyz.com"} 例如 {"cba@xyz.com"}
标签: javascript css html local-storage