<script type="text/javascript">
function init() {
var pArry = document.getElementsByTagName("p");
for( var i=0; i<pAry.length; i++ ) {
pArry[i].onclick = function() {
alert(i);
}
}
}
</script>
</head>
<body onload="init();">
<p>test 0</p>
<p>test 1</p>
<p>test2</p>
<p>test3</p>
<p>test4</p>
为什么结果都是5?我希望reault是(0,1,2 ....)。
答案 0 :(得分:1)
创建该函数时,它引用i
,而不是i
的值。试试这个来冻结i
的价值:
function init() {
var pArray = document.getElementsByTagName("p");
for( var i=0; i<pAry.length; i++ ) {
(function(i) {
pArray[i].onclick = function() {
alert(i);
};
})(i);
}
}