将localStorage设置为现有的localStorage变量

时间:2013-09-23 18:24:28

标签: javascript local-storage

根据我所阅读的内容,我希望以下代码能够正常运行。

此代码是一个函数的一部分,该函数应该通过用下一个更高的localStorage变量覆盖它来删除localStorage变量。一旦没有复制,最后的变量就会被删除。

'cc'在其他地方计算存在多少某个div(每个div都有三种与之关联的localStorage变量)。

'x'保存被点击的div的数组位置。

所有发生的都是“警报”。代码本身是错误的,还是我在其他地方犯了错误?

for (z = x; z < cc; z++) {
    alert(z + " " + cc);
    localStorage.setItem("names" + z), localStorage.getItem("names" + (z + 1));
    localStorage.setItem("skillLevel" + z), localStorage.getItem("names" + (z + 1));
    localStorage.setItem("title" + z), localStorage.getItem("names" + (z + 1));
    localStorage.removeItem("names" + (z + 1));
    localStorage.removeItem("skillLevel" + (z + 1));
    localStorage.removeItem("title" + (z + 1));
}

2 个答案:

答案 0 :(得分:2)

您的setItem似乎抛出了一些语法错误,您过早地关闭了)

localStorage.setItem("names" + z), localStorage.getItem("names" + (z + 1));
                                ^
                                That ends the setItem func right there

我相信你想要:

localStorage.setItem("names" + z, localStorage.getItem("names" + (z + 1)));

答案 1 :(得分:0)

您可以使用http://rhaboo.org更有效地完成此任务:

var store = Rhaboo.persistent("Players");
if (store.players === undefined) { //first run
  store.write('players', []);
  store.players.push(
    {name: 'fred', level: 'noob',     title: 'Mr'},
    {name: 'joe',  level: 'advanced', title: 'Mr'},
    {name: 'jill', level: 'ninja',    title: 'Ms'}
  );
}
store.players.splice(1,1); //deletes joe 

Rhaboo将此数组存储为链接列表,因此要删除joe,只需释放其localStorage插槽并将fred.next路由到jill,可以这么说。

BTW我写了rhaboo。