Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 阵列中的本地存储_Javascript_Css_Html_Local Storage - Fatal编程技术网

Javascript 阵列中的本地存储

Javascript 阵列中的本地存储,javascript,css,html,local-storage,Javascript,Css,Html,Local Storage,我试图做的是获取用户的电子邮件和名称输入,并将其推入数组emailbook,它会将电子邮件和名称的.value推入数组,但每当我将其存储到localstorage时,它就会替换现有数组。请帮忙,谢谢 <script> document.addEventListener("DOMContentLoaded",docIsReady); var emailbook; function docIsReady(){ em

我试图做的是获取用户的电子邮件和名称输入,并将其推入数组emailbook,它会将电子邮件和名称的.value推入数组,但每当我将其存储到localstorage时,它就会替换现有数组。请帮忙,谢谢

<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>

文件。添加的文件列表器(“DOMContentLoaded”,docIsReady);
var电子邮箱;
函数docIsReady(){
emailbook=localStorage.getItem(“emailbook”);
如果(emailbook==null){
emailbook=[];
控制台日志(emailbook)
}
否则{
emailbook=JSON.parse(emailbook);
控制台日志(emailbook)
}
}
函数存储(){
var name=document.getElementById(“name”).value;
var email=document.getElementById(“email”).value;
var obj={“name”:name,“email”:email};
emailbook.push(obj);
setItem(“email”,JSON.stringify(emailbook));
}
log(本地存储);
//var storedemail=JSON.parse(localStorage.getItem(“电子邮件”);

如何读取localStorage in store()方法,将所有内容推送到emailbook数组,推obj并将其保存到localStorage中

大概是这样的:

var name = "foobar";
var email = "mail";
var emailbook = [];
var obj = {"name": name, "email": email};
if(localStorage.getItem('email') != null) {
    var tmp = JSON.parse(localStorage.getItem('email'));
    for(let i = 0;i<tmp.length;i++) {
        emailbook.push(tmp[i]);
    }

}
emailbook.push(obj);
localStorage.setItem("email", JSON.stringify(emailbook));
var name=“foobar”;
var email=“mail”;
var emailbook=[];
var obj={“name”:name,“email”:email};
if(localStorage.getItem('email')!=null){
var tmp=JSON.parse(localStorage.getItem('email');

对于(设i=0;i您认为它替换现有数组是什么意思?它是否会使emailbook中的其他属性为空?localStorage属性是只读的,因此您无法对其进行编辑。localStorage只能使用
save
read
remove
进行本地存储。localStorage按键存储值,您使用相同的键对其进行设置,当然会重新设置。)放置旧值。我假设您打算使用
emailbook
作为键,例如
localStorage.setItem(“emailbook”,JSON.stringify(emailbook));
@GeorgeDaniel By替换我所指的var emailbook的现有数组,例如emailbook={”abc@xyz.com“}问题是当我键入新电子邮件时,它会替换{”abc@xyz.com"}例如{”cba@xyz.com“}当我尝试它时,键和值只是更改为[{“name”:“foobar”,“email”:“mail”}]。我尝试更改var name=document.getElementById(“name”).value;对于email也是如此,但它只返回null try to log(console.log)“document.getElementById(“name”).value。如果它为null,那么问题出在html中(可能是错误的id?)。也请确保不要定义两次emailbook变量(我在store函数的作用域中再次定义了此变量,但您将其定义为全局变量)我记录了document.getElementById(“name”)。值,结果是它应该是的,但当我记录变量“name”时,结果为空
是的,我在!这是我的表单,我正试图在JSFIDLE中充分利用Works的价值:您可以发布整个解决方案或在出现问题的地方创建解决方案吗?您是否在浏览器中刷新了脚本?