当前位置: 首页 > 面试题库 >

HTML5 localStorage按键顺序

龙佐
2023-03-14
问题内容

我的页面上有一些div,编码为

<div id="1">Click Me to load corresponding dynamicList</div><ul class="dynamicList"></ul>
<div id="2">Click Me to load corresponding dynamicList</div><ul class="dynamicList"></ul>
<div id="3">Click Me to load corresponding dynamicList</div><ul class="dynamicList"></ul>
<div id="4">Click Me to load corresponding dynamicList</div><ul class="dynamicList"></ul>
<div id="5">Click Me to load corresponding dynamicList</div><ul class="dynamicList"></ul>

现在,单击任何一个div,就会进行AJAX调用,将动态列表返回为:

<li>Some content 1</li>
<li>Some content 2</li>
<li>Some content 3</li>

我想在第一次AJAX调用之后将上述动态列表存储在localStorage中。所以我写;

var key = $(selectedDiv).attr('id');     
var value = str;     //str = Returned AJAX response of li's
localStorage.setItem(key, value);

现在,在下一页加载中,我想在DOM的正确位置附加所有dynamicList(所有用户之前单击的那些)(因此,在下次单击期间不会对数据进行AJAX调用)

for (i=0;i<localStorage.length;i++) 
{
var key = localStorage.key(i);
    if(key != null) 
    {
    var value = localStorage.getItem(key); 
    $("#"+i).next(".dynamicList").empty();
    $("#"+i).next(".dynamicList").append(value);
    }
}

现在似乎在localStorage的顺序中出现了一些问题,因为正确的dynamicList没有被附加在正确的位置。我想这条线有问题

var key = localStorage.key(i);

请让我知道如何解决此问题。


问题答案:

不要依赖localStorage键的顺序。您可以通过在所有可用的键重复localStorage使用localStorage[n],而是指可以使用一个密钥(字符串)localStorage[str_key]localStorage.getItem(str_key)

在您的情况下,您已经将localStorage键名的索引与您分配给该项的名称混淆了。因此,不要使用键索引,而要使用值键:

for (i=0;i<localStorage.length;i++) 
{
var key = localStorage.key(i);
    if(key != null) 
    {
    var value = localStorage.getItem(key); 
    $("#"+key).next(".dynamicList").empty();
    $("#"+key).next(".dynamicList").append(value);
    }
}


 类似资料:
  • 问题内容: D = {‘a’: 1, ‘b’: 2, ‘c’: 3} >>> D 我只是在Python shell中进行了此操作,我想知道为什么键“ c”会在键“ b”之后??? 问题答案: 顺序与它们内部的工作方式以及它们在哈希表中的顺序有关。这又取决于键的哈希值,键的插入顺序以及所使用的Python实现。 该顺序是任意的(但不是随机的),知道它将是哪个顺序将永远不会有用。 要获取排序的键列表,

  • 问题内容: 在Python 3中,使用多个键按字典顺序对对象列表进行排序非常容易。例如: 该参数使您可以指定是升序还是降序。但是,如果要按多个键进行排序,但是要对第一个键使用降序排序,而对第二个键使用升序排序,该怎么办? 例如,假设我们有一个具有两个属性的对象,而,其中an和is是。我们希望通过梳理这些对象的名单在 递减 顺序(使之与点的数量最多的对象是第一位的),但与同等数量的对象,我们要排序这

  • 在spring data jpa应用程序中,我创建了一个带有@entity注释的模型。我正在将该模型数据保存到表中。我正在自动递增主键。但当我将数据保存到表中时,它不是按顺序自动递增的。 类文件 桌子 谁能告诉我为什么主键没有按顺序自动递增?为什么它不需要2,3,4......

  • 问题内容: 我在mysql排序中寻找一些调整,我通常从表中选择记录,然后按Name(varchar)ASC排序记录, 但编号始终是第一位的 这是我的问题的一些示例( 注意。mysql首先用0-9排序记录 ) 我想要的是字母顺序,然后是数字 所需的输出 问题答案: 使用以下子句:

  • 问题内容: 在SQL中,有没有一种方法可以 按键组 顺序添加行号? 假设一个带有任意(CODE,NAME)元组的表。表格示例: 使用CODE作为分组属性的所需投影: 谢谢, 问题答案: SQL服务器 甲骨文 Postgres Sybase公司 MySQL不支持。这涵盖了大多数基地。

  • 当使用Angular keyvalue管道遍历对象的属性时,如下所示: 我遇到过一个问题,即属性没有按照预期的顺序迭代。这条评论表明,我不是唯一一个经历过这个问题的人: 如何在Angular中使用ngFor循环对象属性