<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