javascript - 用于多个选择选项下拉列表的本地存储

标签 javascript jquery arrays json local-storage

我有多个选择选项下拉列表,并且希望在用户选择后使用本地存储来保存用户的选择。这是 HTML 的示例:

<div class="sel_container">
    <select onchange="saveChoice()" id="select_color" class="test">
        <option value="">Choose color</option>
        <option value="red">red</option>
        <option value="blue">blue</option>
        <option value="green">green</option>
    </select>
    <select id="select_type" class="test" onchange="saveChoice()">
        <option value="">Choose size</option>
        <option value="small">small</option>
        <option value="medium">medium</option>
    </select> 
</div>

我使用了我发现的另一篇文章中的代码,它可以保存其中一个选择:

$(function() {
    $('#select_color').change(function() {
        localStorage.setItem('todoData', this.value);
    });
    if(localStorage.getItem('todoData')){
        $('#select_color').val(localStorage.getItem('todoData'));
    }
});

我是 javascript 新手,在阅读了一些内容后,我似乎需要进行 JSON stringify,但我对此语法感到非常困惑。我尝试使用这个,但它不起作用:

var obj = {
    "#select_color": this.value,
    "#select_type": this.value
}
var stringifyObj = JSON.stringify(obj);

非常感谢您对此的任何帮助!谢谢!

最佳答案

您不需要专门为此使用对象或 JSON。您可以做的是通过使其更加通用来改进您的代码,以便它适用于 select 的任何实例。

您已经为它们提供了 .test 类,因此您可以通过该类进行选择。然后,您可以在 localstorage 中设置由 selectid 键控的值,该值可以在页面加载时检索。试试这个;

$('.test').change(function() {
    localStorage.setItem(this.id, this.value);
}).val(function() {
    return localStorage.getItem(this.id)
});

Working example

关于javascript - 用于多个选择选项下拉列表的本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35321711/

相关文章:

javascript - 使用箭头键滚动时将菜单顶部设置在 ul 元素的中间

jquery - 如何在免费的 jqgrid 中显示列上下文菜单中的所有列

javascript - 将数组中的对象放置在 Canvas 中

javascript - jquery 跳过具有特定 css 类的表

javascript - 在 MVC ASP.NET 中重新加载页面时如何在特定位置滚动页面

javascript - JQuery href preventdefault 问题与 anchor

javascript - 无法使用 JS/KnockoutJS 获取数组以显示在折线图中

javascript - 我们可以在 html\javascript 中为 android 制作应用程序吗?

javascript - 用户查看弹出窗口更改变量值的次数

javascript - 获取平均返回 NAN - JS