簡體   English   中英

包含if語句的for循環僅返回上一次迭代。 做什么? (javascript)

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

我今天才開始使用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. value is a not or b”作為輸出。 可以采取什么措施來預防此問題?

循環的每次迭代都將覆蓋最后的結果,因為您要替換文本框的值,而不是為每次迭代添加值。 使用+ =避免這種情況,如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM