В основном у меня есть локальный ключ хранения «rhand» со значением «sword4» и объект с именем sword4.

Я хочу, чтобы это было динамичным, чтобы я мог переключить имя элемента в локальном хранилище, такое как «sword1», «sword2», а затем получить его, чтобы вызвать уникальную информацию о том, что есть в div.

Я могу положить в sword4.name; и это вызовет имя «стальной меч», но rhand1.name; не делает этого, он говорит неопределенный ...

Я более знаком с PHP, и кажется, что это будет работать в PHP, но это не имеет смысла в JavaScript. Извините, если мой английский трудно понять.

Вот код:

localStorage.setItem("rhand", "sword4");

let sword4 = {
  name: "steel sword",
  info: "a sharp steel sword",
  def: "0",
  str: "10",
  int: "0",
  agi: "0",
  lbs: "3"
};

let rhand1 = localStorage.getItem("rhand");
document.getElementById("rhand").innerHTML = rhand1.name;
<div id="rhand"></div>
1
Gordon 21 Апр 2020 в 06:31

2 ответа

Лучший ответ

LocalStorage может хранить только строки, поэтому, когда вам нужно сохранить что-то, отличное от String, например, Array, Object или Number - преобразуйте это в String с JSON.stringify(). Если вы хотите получить что-то из localStorage, преобразуйте его обратно с помощью JSON.parse().

Демонстрация

Примечание. SO не допускает API WebStorage. Полнофункциональную демонстрацию можно найти в этой Fiddle

let sword4 = {
  name: "steel sword",
  info: "a sharp steel sword",
  def: "0",
  str: "10",
  int: "0",
  agi: "0",
  lbs: "3"
};

localStorage.setItem("rhand", JSON.stringify(sword4));

let rhand1 = JSON.parse(localStorage.getItem("rhand"));

document.getElementById("rhand").innerHTML = rhand1.name;
<div id="rhand"></div>
0
zer00ne 21 Апр 2020 в 03:43
let sword4 = {
  name: "steel sword",
  info: "a sharp steel sword",
  def: "0",
  str: "10",
  int: "0",
  agi: "0",
  lbs: "3"
};
localStorage.setItem("rhand", JSON.stringify(sword4));

let rhand1 = JSON.parse(localStorage.getItem("rhand"));
document.getElementById("rhand").innerHTML = rhand1.name

Попробуйте это и, пожалуйста, закройте вопрос, как только это будет сделано.

1
ANUPAM CHAUDHARY 21 Апр 2020 в 03:40