代码之家  ›  专栏  ›  技术社区  ›  Adam Robertson

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

  •  0
  • Adam Robertson  · 技术社区  · 6 年前

    我将此存储在会话中:

    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 回复  |  直到 6 年前
        1
  •  1
  •   Victor    6 年前

    从中获取相同的值 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']);
        }
    }
    
        2
  •  0
  •   charlietfl    6 年前

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

    这些选择键的提议并非一目了然。我假设这些选择器是要插入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)
       });
    }