[問題] js在迴圈裡設定函數

看板Web_Design作者 (港都霹靂火)時間10年前 (2014/01/11 11:38), 編輯推噓0(005)
留言5則, 4人參與, 最新討論串1/2 (看更多)
不好意思問題有點不清楚 我想問的是,在一個for迴圈中,變數i的質每次都會變 要怎麼用i來當作函數的變數呢? 好像越講越不清楚,舉個例子好了 像是我html裡有三個div,id就叫d1,d2,d3好了 現在我想要設定他們的onclick,按到d1時會alert("hello 1!")這樣,以此類推 直覺想到的方法是 window.onload = { for(var i = 1; i <= 3; i++) { var d = getElementById('d' + i); d.onclick = function() { alert('hello' + i); }; } } 不過這樣每個都alert("hello 4!") 我的想法是把i用字面上的形式保留下來,不過不知道怎麼做 所以po來這邊請各位高手解答,感恩... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.201.19

01/11 11:44, , 1F
for(...){ (function(i) { ..... })(i) }
01/11 11:44, 1F

01/11 11:52, , 2F
太感謝了!!
01/11 11:52, 2F

01/11 15:00, , 3F
原理可以參考這篇 http://goo.gl/vI93Y
01/11 15:00, 3F


01/15 04:14, , 5F
Javascript中的傳遞參考與closure (4) by azole
01/15 04:14, 5F
文章代碼(AID): #1IqBp9y6 (Web_Design)
文章代碼(AID): #1IqBp9y6 (Web_Design)