<script type="text/javascript">

        for(var i=0;i<10;i++){

            (function(i){

                var a=document.createElement('a');

                a.innerHTML=i+'<br>';

                document.body.appendChild(a);

                a.addEventListener('click',function(e){
                    e.preventDefault();  //取消默认事件,指a标签
                    alert(i);
                });

            })(i);

        }

    </script>
由于使用了document.body.appendchild(),因此要将script标签内的代码放在body之后,原因如下:

   出现这种无法获取未定义或null引用的属性报错提示,
  说明在文档DOM结构尚未加载完成之前,脚本(script)就开始操作DOM啦

还有其他方法:

1.在function之前使用window.onload

2.使用settimeout

3.使用insertbefore