闭包实现循环事件添加

<!DOCTYPE HTML>
<html>

<head>
    <meta charset="utf-8" />
    <title>闭包演示</title>
    <style type="text/css">
        p { background: #ccc; text-align: center; height: 30px; line-height: 30px; width: 100px; cursor: pointer; }
    </style>
    <script type="text/javascript">
    function init() {
        var pAry = document.getElementsByTagName("p");
        // for (var i = 0; i < pAry.length; i++) {
        //     pAry[i].onclick = function() {
        //         alert(i);
        //     }
        // }
        for (var i = 0; i < pAry.length; i++) {
            pAry[i].onclick = (function(i) {
                return function(){
                    alert(i);
                }
            })(i);
        }
    }
    </script>
</head>

<body onload="init();">
    <p>产品 0</p>
    <p>产品 1</p>
    <p>产品 2</p>
    <p>产品 3</p>
    <p>产品 4</p>
</body>

</html>
原文地址:https://www.cnblogs.com/woodk/p/5217203.html