Сохранение элемента html из переменной в sessionStorage и получение его - jQuery - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь сохранить эту переменную роли с заполненными параметрами выбора в sessionStorage.

 var newRoleCounter = 0; 

  function  createClientRoleContainer(allPartnersOrClients) {
     var role = $(`<div id="cr" class="client-role"><div class="row"><div class="col s4 input-field clients-select" id="clients-select">
                      <select class="js-select clients-new" name="client-for-role" id="entity-edit">
                   </select><label for="entity-edit-label" class="active" id="clients-select-label">Client</label>
                  </div><div class="col s4 input-field"><select class="js-select" id=""><option value="" disabled selected>Choose role</option></select>
                  <label for="" class="active">Role</label></div><a class="language-group-remove p-t-8"><span class="icon s24">delete</span>Remove</a></div>
                  </div>`);

       Object.keys(allPartnersOrClients).forEach(function (key) {
        role.find('#entity-edit').append(new Option(allPartnersOrClients[key], key));
    });

      sessionStorage.setItem("role", JSON.stringify(role));
}

и получить ее так, чтобы я мог редактировать ее так:

$("#users-page").on("click", "#add-client-for-user", function () {

    newRoleCounter++;


    var retrievedObject = sessionStorage.getItem("role");
    console.log('retrievedObject: ', JSON.parse(retrievedObject));
    var roleContainer = $("retrievedObject: ", JSON.parse(retrievedObject));

    roleContainer.find('#cr').prop('id', 'cr-' + newRoleCounter);
    roleContainer.find('#clients-select').prop('id', 'clients-select-' + newRoleCounter);
    roleContainer.find('#entity-edit').attr('id', 'entity-edit-' + newRoleCounter);
    roleContainer.find('#clients-select-label').attr('id', 'clients-select-label-' + newRoleCounter).attr('for', 'entity-edit-' + newRoleCounter);

    $("#new-clients-roles-container").append(roleContainer);
    $('#entity-edit-' + newRoleCounter).formSelect();
});

, но не может прочитать или изменить значения идентификатора после сохранения его в sessionStorage.

это результат:

role:
0: {}
length: 1
__proto__: Object
__proto__:
constructor: ƒ Object()
__defineGetter__: ƒ __defineGetter__()
__defineSetter__: ƒ __defineSetter__()
hasOwnProperty: ƒ hasOwnProperty()
__lookupGetter__: ƒ __lookupGetter__()
__lookupSetter__: ƒ __lookupSetter__()
isPrototypeOf: ƒ isPrototypeOf()
propertyIsEnumerable: ƒ propertyIsEnumerable()
toString: ƒ toString()
valueOf: ƒ valueOf()
toLocaleString: ƒ toLocaleString()
get __proto__: ƒ __proto__()
set __proto__: ƒ __proto__()
...