Javascript 如何对多个对象使用$.storage

Javascript 如何对多个对象使用$.storage,javascript,jquery,local-storage,Javascript,Jquery,Local Storage,我正在构建一个画布,我将在其中移动多个对象和图像,并希望将它们保存在本地存储中,以便在以后查看时检索 我认为jQuery的$.storage插件非常理想,但我不知道如何在其中保存多个对象。jquery api表示其语法为: $.Storage.set({"name1":"value1", "name2":"value2", etc})` 但这只适用于一个对象。我能在参数列表中创建多个对象吗?或者存储一个数组?您可以创建JSON字符串并存储它们,以便在检索数据时可以将其解析为JSON并从中获取对

我正在构建一个画布,我将在其中移动多个对象和图像,并希望将它们保存在本地存储中,以便在以后查看时检索

我认为jQuery的
$.storage
插件非常理想,但我不知道如何在其中保存多个对象。jquery api表示其语法为:

$.Storage.set({"name1":"value1", "name2":"value2", etc})`

但这只适用于一个对象。我能在参数列表中创建多个对象吗?或者存储一个数组?

您可以创建JSON字符串并存储它们,以便在检索数据时可以将其解析为JSON并从中获取对象。这样,您就可以在对象中存储关于单个元素的所有信息

更新

这里有一个工具,您可以将JavaScript对象“字符串化”为JSON(它将在尚未具备此功能的浏览器中添加此功能):

如果需要,可以嵌套对象:

var myObj = {
        level_one : {
            level_two : {
                key : 'val'
            },
            level_two_too : {
                level_three : {
                    key : 'val'
                }
            }
        },
        level_one_too : {
            key : 'val'
        }
    },
    str = JSON.stringify(myObj);
str
变量现在将保存如下字符串:

{"level_one":{"level_two":{"key":"val"},"level_two_too":{"level_three":{"key":"val"}}},"level_one_too":{"key":"val"}}
$.Storage.set({"element-one":JSON.stringify($('#element-one')), "element-two":JSON.stringify($('#element-two'))})
下面是一个演示:

更新

因此,您的
$.storage()
函数调用如下:

{"level_one":{"level_two":{"key":"val"},"level_two_too":{"level_three":{"key":"val"}}},"level_one_too":{"key":"val"}}
$.Storage.set({"element-one":JSON.stringify($('#element-one')), "element-two":JSON.stringify($('#element-two'))})
下面是一个更新的演示,演示如何创建JSON字符串并将其解析回对象:
这将把与
#element one
#element two
DOM元素关联的jQuery对象存储在本地存储中。

它是哪个
localStorage
插件?是吗?如果是这样的话,我明白了:“名称和值应该是字符串。一些浏览器可能接受非字符串值,但不是所有浏览器都接受。”所以你真的是在将一个名称保存为一个(字符串)值。@Jasper——这只适用于一个对象,对吗?如何将JSON字符串用于多个对象?@codennija-似乎必须将一个对象传递给
.set()
函数,然后该函数对该对象进行操作。Jasper的意思是,您可以将一个JSON格式的字符串作为一个键/值对中的值传入,它将以该名称保存该字符串,然后您可以检索该字符串并将其转换回本机JS对象。@JaredFarrish--您介意提供一个示例来说明您的意思吗?我对JSON不太熟悉,我还是有点迷茫…@codennija这里是一个将JavaScript对象转换为JSON字符串的演示:(这很简单)@Jasper——现在这肯定更有意义了。一旦我设置了对象,我将如何在不同的会话中完整地检索它们的坐标/大小?