我尝试创建单击按钮后从用户(从输入)获取字符串并将其拼写为div的函数。它有效,但是只有一次。当我更改字符串并单击另一个按钮时,页面会记住先前输入的字符串。 我试图在进行新的迭代之前清除div和array,但没有成功。
button.addEventListener('click', spell);
function spell(event) {
event.preventDefault();
let newArr = [];
for (let i=0; i<userText.length; i++) {
newArr.push(userText[i]);
}
programText.textContent = newArr;
}
如何清除数组以避免此问题?
答案 0 :(得分:0)
如果您想在拼写后清除userText
,可以使用userText.length = 0
:
function spell(event) {
event.preventDefault();
let newArr = [];
for (let i=0; i<userText.length; i++) {
newArr.push(userText[i]);
}
userText.length = 0;
programText.textContent = newArr;
}
您甚至不需要将userText
复制到newArr
:
function spell(event) {
event.preventDefault();
programText.textContent = userText;
userText.length = 0;
}
答案 1 :(得分:0)
完整代码如下: 我尝试使用以下方法清除数组:newArray = []和newArray.length =0。并使用programText.textContent =''和programText.length = 0;清除programText。
HTML
<article class=proj001Up>
<button class="button">Function 01</button>
<p>Spell the string</p>
</article>
<article class="proj001Down">
<input class="userText" type="text" name="userText" placeholder="Enter your string/word">
<article class="programText" placeholder="Result"></article>
JS
const button = document.querySelector('.button');
let userText = document.querySelector('.userText').value;
let programText = document.querySelector('.programText');
button.addEventListener('click', spell);
function spell(event) {
event.preventDefault();
let newArr = [];
for (let i=0; i<userText.length; i++) {
newArr.push(userText[i]);
}
programText.textContent = newArr;
}
答案 2 :(得分:0)
好的,我发现了问题。我只需要从let userText = document.querySelector('。userText');中删除值即可;并输入值到功能主体。正确的版本,如下。 谢谢大家的帮助:)
const button = document.querySelector('.button');
let userText = document.querySelector('.userText');
let programText = document.querySelector('.programText');
button.addEventListener('click', spell);
function spell(event) {
event.preventDefault();
let newArr = [];
for (let i=0; i<userText.value.length; i++) {
newArr.push(userText.value[i]);
}
programText.textContent = newArr;
}