这篇文章将为大家详细讲解有关javascript中如何使用匿名函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。循环结构中的JavaScript匿名函数先看
这篇文章将为大家详细讲解有关javascript中如何使用匿名函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
循环结构中的JavaScript匿名函数
先看下面的代码
<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()">
点击按钮之后,会在table11中插入5行,行的双击事件就是使用了JavaScript匿名函数。
试想,点击第2行和第3行,你会看到什么,会是alert('tr0')和alert('tr1')吗,和你想的一样?
很显然不是我想要的结果,而是弹出了alert('tr5'),真是有点儿怪哦!可以肯定的是问题肯定是出在JavaScript匿名函数上,有可能是这个行的双击事件都指向了同一下JavaScript匿名函数,不知道各位有什么看法?
而把上述代码修改成如下代码,就会得到我们想到的结果。
<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()">
关于JavaScript中如何使用匿名函数就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
--结束END--
本文标题: JavaScript中如何使用匿名函数
本文链接: https://www.lsjlt.com/news/67301.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0