在单击按钮时将字符串插入div,然后在下次单击之前将其清除

时间:2019-03-20 22:26:37

标签: javascript arrays clear

我尝试创建单击按钮后从用户(从输入)获取字符串并将其拼写为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;
}

如何清除数组以避免此问题?

3 个答案:

答案 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;
}