我在jsfiddle上搞了一些javascript,並遇到了一個奇怪的問題。我似乎無法弄清楚,爲什麼我通過我無法設置onclick
事件處理循環:使用for循環設置事件處理程序
HTML:在DOM執行
<table border="1" cellspacing="1" width="500">
<tr id="headerRow">
<td>Header1</td>
<td>Header2</td>
<td>Header3</td>
<td>Header4</td>
</tr>
<tr>
<td>books</td>
<td>red</td>
<td>peas</td>
<td>321</td>
</tr>
<tr>
<td>tapes</td>
<td>blue</td>
<td>jello</td>
<td>654</td>
</tr>
</table>
JS準備:
var arr = document.getElementById('headerRow')
.getElementsByTagName("td");
// Why does this work??
/*arr[0].onclick = function() { alert(arr[0].innerHTML); };
arr[1].onclick = function() { alert(arr[1].innerHTML); };
arr[2].onclick = function() { alert(arr[2].innerHTML); };
arr[3].onclick = function() { alert(arr[3].innerHTML); };
*/
//But this doesn't????
for(var i = 0; i < arr.length; i++) {
arr[i].onclick = function() { alert(arr[i].innerHTML); };
}
認爲這和你要找的是一樣的嗎? http://stackoverflow.com/questions/6487366/how-to-generate-event-handlers-with-loop-in-javascript – Darren