for 循环,包括 if else 语句仅返回最后一次迭代.怎么办?(JavaScript)

For loop including if else statements only return the last iteration. What do? (javascript)

本文关键字:怎么办 迭代 最后一次 JavaScript 返回 循环 包括 if 语句 else for      更新时间:2023-09-26

我今天才开始使用javascript,并在网上对这个问题进行了研究。但是我无法掌握闭包的用法,尤其是对于我编写的这段代码:

function writeit()
{
    var tbox = document.getElementById('a_tbox').value;
    var letters = tbox.split("");
    for(var i=0;i<letters.length;i++)
    {
        if(letters[i]==="a")
        {
            document.a_form.b_tbox.value = i+1 + ". character is a";
        }
        else if(letters[i]==="b")
        {
            document.a_form.b_tbox.value = i+1 + ". character is b";
        }
        else
        {
            document.a_form.b_tbox.value = i+1 + ". character is not a nor b";
        }
    }
}

正如你在这里看到的,我想从文本框中获取一个字符串,将其拆分为一个数组,并使用 for 循环更改其中的值。我对代码的期望是,如果文本框包含"abc"作为用户贡献,则输出将为"1。值为 2。值为 b 3。值不是 A 也不是 B"。但它只给出了"3.值不是 A 也不是 B"作为输出。可以做些什么来防止这个问题?

循环

的每次迭代都会覆盖最后一个结果,因为您要替换文本框的值,而不是为每次迭代添加。使用 += 来避免这种情况,如下所示:

document.a_form.b_tbox.value += i+1 + ". character is not a nor b";