简体   繁体   中英

How to retrieve a specific object from a JSON value stored in sessionStorage?

I have this stored in the session:

sessionStorage屏幕抓取

What I'm looking to do is assign each object in the JSON as a variable so I can add them to the DOM appropriately.

This works but prints everything out:

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

What I'd like is something like this, but it doesn't work:

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')));

Any help would be greatly appreciated. Thank you!

Getting the same value from the storage several times is not a good idea. In addition, you need better names for your variables.

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']);
    }
}

So it appears you have set selectors as keys of the object so you could iterate those keys to get each selector.

The propose of those selector keys is not 100% clear. I am assuming that those selectors are the elements you want to insert the html strings into and that $() means you are using 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)
   });
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM