[英]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.