Я пытаюсь хранить много текста в массиве (поэтому я могу легко извлечь его, используя значение). Проблема заключается в строках, которые я хотел бы использовать литералами шаблонов, чтобы строка менялась в зависимости от ввода (например, после того, как они добавили свое имя, она использует их имя.
Я могу заставить это работать без проблем, если включу строку в функцию. Например:
textbox.textContent = `what does ${nameTemp} do?`;
Это работает без проблем, он меняет «nameTemp» на то, что ввел пользователь. Но это ниже нет! Он всегда возвращает "tim" в качестве имени (значение по умолчанию для "nameTemp").
textbox.textContent2 = Title[1];
Вы можете видеть в приведенном ниже коде в функции saveName(), что первая строка (с полной строкой, включая литерал шаблона) работает. Но строка ниже, использующая строку из массива (с литералом шаблона в) не обновляется . Он использует строку по умолчанию "tim". Что я делаю неправильно? Как я могу лучше хранить строки в массиве, который имеет chanagable элементы? Заранее спасибо за любые предложения.
var nameTemp = `tim`;
let Title = [];
Title[0] = "What are you called?";
Title[1] = `what does ${nameTemp} do?`;
const input = document.createElement('input');
input.type = "text";
input.id ="nameText";
input.className +='inputStyle';
function addNameInput()
{
container.appendChild(input);
}
function saveName()
{
if (nameText.value !== null)
{
nameTemp = nameText.value;
textbox.textContent = `what does ${nameTemp} do?`; //This works, it displays the inputed name
textbox.textContent2 = Title[1]; // This will always display 'tim'
nameText.parentNode.removeChild(nameText);
incrementState();
}
}