0

我今天才开始使用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. value is a 2. value is b 3. value is not a or b”。但它只给出“3. value is not a nor b”作为输出。可以做些什么来防止这个问题?

4

1 回答 1

0

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

document.a_form.b_tbox.value += i+1 + ". character is not a nor b";
于 2013-02-02T18:50:42.673 回答