关于JS函数闭包的一个小案例

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        ul > li {
            border: 1px solid #f00;
        }
    </style>
</head>
<body>
<script>
     window.onload = function () {
        var list = document.getElementById('list');
        var listLi = list.getElementsByTagName('li');

        for(var i = 0; i < listLi.length; i++){
            listLi[i].onclick = (function(){
                var rowNum=i;
                return function(){
                    alert(rowNum);
                }
            })();
        }
    }
</script>

<ul id="list">
    <li>0</li>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
</ul>
</body>
</html>

想要的效果就是点击对应的li元素就可以对对应的元素执行alert(rowNum)操作
效果如如下,点击第6个<li>即弹出6


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容