循環(huán)結(jié)構(gòu)中JavaScript匿名函數(shù)用法實(shí)例解析
JavaScript函數(shù)有很多值得學(xué)習(xí)的地方,本文和大家重點(diǎn)討論一下循環(huán)結(jié)構(gòu)中的JavaScript匿名函數(shù)的使用,相信你一定會感興趣。
循環(huán)結(jié)構(gòu)中的JavaScript匿名函數(shù)
先看下面的代碼
- <SCRIPTLANGUAGESCRIPTLANGUAGE="JavaScript">
- <!--
- functionDelete_Row(i)
- {
- alert(i);
- }
- functiontest()
- {
- for(vari=0;i<5;i++)
- {
- vartable11=document.getElementById("table11");
- vartr11=table11.insertRow();
- vartrstr="tr"+tr11.rowIndex;
- tr11.id=trstr;
- tr11.ondblclick=function()
- {
- Delete_Row(trstr);
- };
- vartd11=tr11.insertCell();
- td11.innerHTML=i;
- td11=tr11.insertCell();
- td11.innerText="我愛你";
- td11=tr11.insertCell();
- td11.innerText="笨蛋";
- td11=tr11.insertCell();
- }
- }
- //-->
- </SCRIPT>
- <tableidtableid="table11"border=1>
- <tbody>
- <tr>
- <td>***列</td>
- <td>第二列</td>
- <td>第三列</td>
- </tr>
- </tbody>
- </table>
- <br>
- <inputtypeinputtype="button"value="GO"onclick="test()">
點(diǎn)擊按鈕之后,會在table11中插入5行,行的雙擊事件就是使用了JavaScript匿名函數(shù)。
試想,點(diǎn)擊第2行和第3行,你會看到什么,會是alert('tr0')和alert('tr1')嗎,和你想的一樣?
很顯然不是我想要的結(jié)果,而是彈出了alert('tr5'),真是有點(diǎn)兒怪哦!可以肯定的是問題肯定是出在JavaScript匿名函數(shù)上,有可能是這個(gè)行的雙擊事件都指向了同一下JavaScript匿名函數(shù),不知道各位有什么看法?
而把上述代碼修改成如下代碼,就會得到我們想到的結(jié)果。
- <SCRIPTLANGUAGESCRIPTLANGUAGE="JavaScript">
- <!--
- functionDelete_Row(i)
- {
- alert(i);
- }
- functiontest()
- {
- for(vari=0;i<5;i++)
- {
- vartable11=document.getElementById("table11");
- vartr11=table11.insertRow();
- vartrstr="tr"+tr11.rowIndex;
- tr11.id=trstr;
- tr11.ondblclick=f(trstr);
- vartd11=tr11.insertCell();
- td11.innerHTML=i;
- td11=tr11.insertCell();
- td11.innerText="我愛你";
- td11=tr11.insertCell();
- td11.innerText="笨蛋";
- td11=tr11.insertCell();
- }
- }
- functionf(i)
- {
- return function()
- {
- Delete_Row(i);
- }
- }
- //-->
- </SCRIPT>
- <tableidtableid="table11"border=1>
- <tbody>
- <tr>
- <td>***列</td>
- <td>第二列</td>
- <td>第三列</td>
- </tr>
- </tbody>
- </table>
- <br>
- <inputtypeinputtype="button"value="GO"onclick="test()">
【編輯推薦】
- 詳細(xì)說明Javascript匿名函數(shù)技巧與文章
- JavaScript函數(shù)的定義及形式參數(shù)
- C#代碼與JavaScript函數(shù)的相互調(diào)用
- JavaScript函數(shù)中arguments對象
- Javascript中CSS屬性float特殊寫法