如何从存储在sessionStorage中的JSON值检索特定对象?

时间:2018-12-08 20:44:24

标签: javascript session cookies session-cookies session-storage

我将其存储在会话中

sessionStorage screen grab

我要做的是将JSON中的每个对象分配为变量,以便可以将它们适当地添加到DOM中。

这有效,但可以打印出所有内容:

if (sessionStorage.getItem('wc_fragments_aaf6a2e5b971cb51d59e8f3eae9b34c9') != null) {
    $(sessionStorage.getItem('wc_fragments_aaf6a2e5b971cb51d59e8f3eae9b34c9')).appendTo('.div');
}

我想要的是这样的东西,但是不起作用:

var div1 = $(JSON.parse(sessionStorage.getItem('wc_fragments_aaf6a2e5b971cb51d59e8f3eae9b34c9', 'a.cart-contents')));
var div2 = $(JSON.parse(sessionStorage.getItem('wc_fragments_aaf6a2e5b971cb51d59e8f3eae9b34c9', 'a.footer-cart-contents')));
var div3 = $(JSON.parse(sessionStorage.getItem('wc_fragments_aaf6a2e5b971cb51d59e8f3eae9b34c9', 'div.widget_shopping_cart_content')));

任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

多次从storage获得相同的值不是一个好主意。此外,您需要为变量使用更好的名称。

var json = sessionStorage.getItem('wc_fragments_aaf6a2e5b971cb51d59e8f3eae9b34c9');
if (json) {
    var data = JSON.parse(json);
    if (data) {
        var cart_link = $(data['a.cart-contents']),
        footer_link = $(data['a.footer-cart-contents']),
        widget_div = $(data['div.widget_shopping_cart_content']);
    }
}

答案 1 :(得分:0)

因此看来您已将选择器设置为对象的键,因此可以迭代这些键以获取每个选择器。

这些选择键的提议不是100%明确的。我假设这些选择器是您要将html字符串插入其中的元素,并且$()表示您正在使用jQuery

if (sessionStorage.getItem('wc_fragments_aaf6a2e5b971cb51d59e8f3eae9b34c9') != null) {
    var data = JSON.parse(sessionStorage.getItem('wc_fragments_aaf6a2e5b971cb51d59e8f3eae9b34c9');

   $.each(data, function(selector, htmlString){
      $(selector).append(htmlString)
   });
}