将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>
答案 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(",");
虽然这不是您描述的具体结果。