jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 如何按照我们设置的顺序从localstorage中检索数据大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我通过循环topmenu(对象数组)来读取一个json文件获取它并将其存储到localstorage中.一切正常,甚至数据都存储在localstorage中.但我的问题是它以排序顺序将数据存储在localStorage中,这可能是它的认行为.但我不需要按排序顺序,我希望它按照它在json中的顺序.因为当我将数据存储到localstorage并从localstorage读取数据时,它会按排序顺序排列.我可以使用$.each中的密钥并附加它以维护我们的订单,如果它自动排序.但为什么要自行整理.有没有其他解决办法.请帮我解决这个问题.

注意:
我需要从json将数据存储到localStorage.然后从localstorage读取它并且不读取json直到localstorage完全为空.当我手动更改localstorage中的值时,它应反映在菜单中.我已经完成了所有条件编码,只需要弄清楚localstorage问题,即将其存储在排序顺序中.

下面是我的JSON文件,javascript和部分html:
JSON

{
    "topmenu":
    [
        {
            "item": "File"
        },{
            "item": "Help"
        },{
            "item": "Edit"
        },{
            "item": "View"
        },{
            "item": "Go"
        },{
            "item": "Tools"
        },{
            "item": "Actions"
        }
    ]
}

JAVASCRIPT

<script>
$(function() {
    if (typeof localStorage === "undefined") {
        alert("Sorry,your browser does not support web storage...");
    }

    $.getJSON("header.json",function(data) {        
        $.each(data.topmenu,function(key,val) {
            localStorage.setItem(val.item,val.item);
        });
        loadMenu();
    });

    function loadMenu() {
        $('.horizontalmenu').html('');
        if (!localStorage.length < 1) {
            for (var i = 0; i < localStorage.length; i++) {
                var item = localStorage.getItem(localStorage.key(i));
                $('.horizontalmenu').append('<li class="menu"><a href="#">' + item + '</a></li>');
            }
        } else {
            $('.horizontalmenu').html("<li class='menu'>No menu</li>");
        }
    }
});
</script>

部分HTML

<div id="header">
        <div id="header-title">
        Test
        </div>
        <div id="header-menu">
                <ul class="horizontalmenu">
                </ul>
        </div>
</div>

解决方法

存储JSON本身. localStorage就像一个没有订单的对象.

localStorage.setItem("menu_items",JSON.Stringify(data));

然后你可以使用JSON.parse()方法获取JSON并解析它.

但是,我不确定您为什么要存储这些项目,为什么不将数据传递给loadMenu函数

loadMenu(data.topmenu);

function loadMenu(elems) {
    // var elems = JSON.parse(localStorage.getItem("menu_items")).topmenu;
    $('.horizontalmenu').empty();
    if (elems.length) {
        for (var i = 0; i < elems.length; i++) {
            var item = elems[i].item;
            $('.horizontalmenu').append('<li class="menu"><a href="#">' + item + '</a></li>');
        }
    } else {
        $('.horizontalmenu').html("<li class='menu'>No menu</li>");
    }
}

大佬总结

以上是大佬教程为你收集整理的jquery – 如何按照我们设置的顺序从localstorage中检索数据全部内容,希望文章能够帮你解决jquery – 如何按照我们设置的顺序从localstorage中检索数据所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。