亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問這段代碼哪里錯了,為什么沒有效果?

請問這段代碼哪里錯了,為什么沒有效果?

懶人00 2016-09-05 19:44:17
<!DOCTYPE?html> <html> <head> ????<meta?charset="UTF-8"> ????<title>Document</title> </head> <body> ????<input?type="button"?value="第一個"?/> ????<input?type="button"?value="第二個"?/> ????<input?type="button"?value="第三個"?/> ????<script> ???? ????????var?btn?=?document.getElementsByTagName('input');???????????? ????????????for(var?i?=?0;?i?<?btn.length;?i?++)?{ ????????????btn[i].onclick?=?function(){ ????????????????if(i==0){ ????????????????????alert("這是第一個"); ????????????????} ????????????????if(i==1){ ????????????????????alert("這是第二個"); ????????????????} ????????????????if(i==2){ ????????????????????alert("這是第三個"); ????????????????}???????????????????????? ????????????} ????????}???????????????? ???? ???????? ????</script> </body> </html>
查看完整描述

3 回答

已采納
?
stone310

TA貢獻361條經驗 獲得超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放在事件內部是不會循環的,因為頁面加載時for循環綁定了?btn[i].onclick事件,而這是個異步加載,頁面加載好后i已經循環完畢,是個定值,就是btn.length,在這里即為3


查看完整回答
1 反對 回復 2016-09-05
  • 懶人00
    懶人00
    i放在事件內部為什么是不會循環的????異步加載時什么意思
  • stone310
    stone310
    異步加載在這里就是頁面加載完畢之前先執行完畢for循環,這時for循環已經結束了,i已經是3了,但是你的onclick事件還沒開始,所以你點擊的時候i就是3
  • 懶人00
    懶人00
    嗯,謝謝了
?
如風糖

TA貢獻8條經驗 獲得超1個贊

你搜索一下js閉包 就能解決你的問題

查看完整回答
反對 回復 2016-09-06
?
黑女2008

TA貢獻75條經驗 獲得超32個贊

循環綁定,就相當于是每個按鈕有一個點擊事件,比如你點擊第一個的時候,調用第一個的事件,但是此時你的i是當時循環的時候的最后i的值,是3,并不是你這次點擊的第i個。

可以直接這樣寫:

var btn = document.getElementsByTagName('input'); ? ? ? ? ? ?

? ? ? ? ? ? for(var i = 0; i < btn.length; i ++) {

? ? ? ? ? ? btn[i].onclick = function(){

? ? ? ? ? ? alert(this.defaultValue); ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? }

? ? ? ? }


查看完整回答
反對 回復 2016-09-05
  • 懶人00
    懶人00
    我主要的目的不是得到這幾個值,而是要為每個元素綁定相同的事件,設置不同的效果的,為什么i是最后的值呢
  • 3 回答
  • 0 關注
  • 1579 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號