Как получить конкретный объект из значения JSON, хранящегося в sessionStorage? - PullRequest
0 голосов
/ 08 декабря 2018

Я сохранил это в сеансе:

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 голосов
/ 09 декабря 2018

Получение одного и того же значения из 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']);
    }
}
0 голосов
/ 08 декабря 2018

Похоже, вы установили селекторы в качестве ключей объекта, чтобы вы могли перебирать эти ключи для получения каждого селектора.

Предложение этих клавиш выбора не на 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)
   });
}
...