Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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/8/logging/2.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_Local Storage - Fatal编程技术网

Javascript 跨多个页面将项目添加到本地存储

Javascript 跨多个页面将项目添加到本地存储,javascript,local-storage,Javascript,Local Storage,有两个文件。第一: <div class="someclass">text1</div> <div class="someclass">text2</div> <script> var foo = document.getElementsByClassName("someclass"); var arr = Array.prototype.map.call(foo, function(elem) { return el

有两个文件。第一:

<div class="someclass">text1</div>
<div class="someclass">text2</div>

<script>
  var foo = document.getElementsByClassName("someclass");
  var arr = Array.prototype.map.call(foo, function(elem) {
    return elem.innerHTML;
  });
  localStorage.foobar = JSON.stringify(arr);
  alert(localStorage.foobar);
</script>
这就给出了:
[“text3”、“text4”]

我希望第二个文件给出
[“text1”、“text2”、“text3”、“text4”]
,或者
[“text3”、“text4”、“text1”、“text2”]


我如何才能做到这一点呢?

因此,您需要查看是否存在任何内容,并将其连接到数组中

if (localStorage.foobar) {
    var prev = JSON.parse(localStorage.foobar);
    arr = arr.concat(prev);
}
localStorage.foobar = JSON.stringify(arr);

因此,您需要查看是否存在任何内容,并将其连接到数组

if (localStorage.foobar) {
    var prev = JSON.parse(localStorage.foobar);
    arr = arr.concat(prev);
}
localStorage.foobar = JSON.stringify(arr);

您需要检索以前存储的数据(如果有),并附加到该数组中。比如:

var foostr=localStorage.foobar | |“[]”;
arr=JSON.parse(foostr);
var foo=document.getElementsByClassName(“someclass”);
Array.prototype.forEach.call(foo,function(elem){
arr.push(elem.innerHTML);
});
localStorage.foobar=JSON.stringify(arr);

警报(localStorage.foobar)您需要检索以前存储的数据(如果有),并附加到该数组中。比如:

var foostr=localStorage.foobar | |“[]”;
arr=JSON.parse(foostr);
var foo=document.getElementsByClassName(“someclass”);
Array.prototype.forEach.call(foo,function(elem){
arr.push(elem.innerHTML);
});
localStorage.foobar=JSON.stringify(arr);

警报(localStorage.foobar)您可以在首先检索localStorage的内容之后,使用
JSON.parse()
对两个数组进行连接:


在首先检索localStorage的内容之后,可以使用
JSON.parse()
,对两个数组进行连接:


每个页面都应该读取localStorage.foobar,如果还没有添加文本,则添加文本。这两页是同时运行的?谢谢您的更正。第二个页面将在第一个页面之后加载。每个页面都应该读取localStorage.foobar,如果尚未加载,则添加她的文本。这两页是同时运行的?谢谢您的更正。第二个页面将在第一个页面之后加载。是的,这很有效,所以我向上投票,谢谢,尽管
concat
方法对我来说更容易理解(我只是javascript新手)。是的,这很有效,所以我向上投票,谢谢,尽管
concat
方法对我来说更容易理解(我只是javascript新手)。
var foo = document.getElementsByClassName("someclass");
var arr = Array.prototype.map.call(foo, function(elem) {
    return elem.innerHTML;
});
localStorage.foobar = JSON.stringify(JSON.parse(localStorage.foobar).concat(arr));
console.log(localStorage.foobar);