将变量从循环存储为数组到localStorage

时间:2015-12-04 02:59:35

标签: javascript

for循环的结果存储为localStorage的方法是什么?也就是说,结果应为:["./somepage1.html", "./somepage2.html"]

<div class="someclass" href="./somepage1.html">foo</div>
<div class="someclass" href="./somepage2.html">foo</div>

<script>
var foo = document.getElementsByClassName("someclass");
for (var i = 0; i < foo.length; i++)
{
    var hrefs = foo[i].getAttribute("href");
    console.log(hrefs);
}
</script>

1 个答案:

答案 0 :(得分:0)

首先,创建hrefs数组。

这使用Array.prototype.map从元素的HTMLCollection创建一个新的hrefs数组。

var foo = document.getElementsByClassName("someclass");

var arr = Array.prototype.map.call(foo, function(elem) {
    return elem.getAttribute("href");
});

然后使用JSON.stringify()对其进行序列化,并将其存储在localStorage中的任意位置。

localStorage.foobar = JSON.stringify(arr);

当然,JSON不需要存储您的数据。您可以根据需要对其进行序列化。

您可以使用.join()来创建以逗号分隔的字符串。

var foo = document.getElementsByClassName("someclass");

localStorage.foobar = Array.prototype.map.call(foo, function(elem) {
    return elem.getAttribute("href");
}).join(",");

虽然这不是您描述的具体结果。