0

私は今日javascriptを開始し、この問題についてWeb上で調査を行いました。しかし、特に私が書いたこのコードでは、クロージャの使用法のコツをつかむことができませんでした:

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でもない」のみが表示されます。この問題を防ぐために何ができるでしょうか?

4

1 に答える 1

0

ループの各反復は、反復ごとに追加するのではなく、テキストボックスの値を置き換えるため、最後の結果をオーバーライドします。次のように、これを回避するには+=を使用します。

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