【发布时间】:2020-04-15 21:30:46
【问题描述】:
我正在尝试将大量文本存储在一个数组中(这样我就可以使用一个值轻松地将其取出)。 问题出在我想使用模板文字的字符串中,因此字符串会根据输入而变化(例如,一旦他们添加了他们的名字,它就会使用他们的名字。
如果我在函数中包含字符串,我可以让这个工作没有问题。例如:
textbox.textContent = `what does ${nameTemp} do?`;
这没问题,它将“nameTemp”更改为用户输入的内容。但是下面没有!它总是返回“tim”作为名称(“nameTemp”的默认值)
textbox.textContent2 = Title[1];
您可以在函数 saveName() 的下面代码中看到第一行(包含模板文字的完整字符串确实有效。但下面的行使用数组中的字符串(包含模板文字)不更新。它使用默认字符串 'tim'。 我究竟做错了什么?我怎样才能最好地将字符串存储在具有可更改元素的数组中?在此先感谢您的任何建议。
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();
}
}
【问题讨论】:
标签: javascript arrays template-literals