3 回答

TA貢獻(xiàn)361條經(jīng)驗 獲得超191個贊
i=0的時候判斷i<btn.length為true,然后i++,i=1;
i=1的時候判斷i<btn.length為true,然后i++,i=2;
i=2的時候判斷i<btn.length為true,然后i++,i=3;
i=3的時候判斷i<btn.length為false,
所以最后i為3
i放在事件內(nèi)部是不會循環(huán)的,因為頁面加載時for循環(huán)綁定了?btn[i].onclick事件,而這是個異步加載,頁面加載好后i已經(jīng)循環(huán)完畢,是個定值,就是btn.length,在這里即為3

TA貢獻(xiàn)75條經(jīng)驗 獲得超32個贊
循環(huán)綁定,就相當(dāng)于是每個按鈕有一個點擊事件,比如你點擊第一個的時候,調(diào)用第一個的事件,但是此時你的i是當(dāng)時循環(huán)的時候的最后i的值,是3,并不是你這次點擊的第i個。
可以直接這樣寫:
var btn = document.getElementsByTagName('input'); ? ? ? ? ? ?
? ? ? ? ? ? for(var i = 0; i < btn.length; i ++) {
? ? ? ? ? ? btn[i].onclick = function(){
? ? ? ? ? ? alert(this.defaultValue); ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? }
? ? ? ? }
添加回答
舉報