<body>
<form id="userForm">
<div id="advTest">
<span>0</span> -- <span>1</span> -- <span>2</span> -- <span>3</span>
</div>
<hr />
<div id="advTest2">
<span>0</span> -- <span>1</span> -- <span>2</span> -- <span>3</span>
</div>
<input type="button" value="Test" id="btnTest" />
</form>
<script type="text/javascript">
//for逻辑块
var i = 0;
var spans = $("#advTest span");
for (i; i < spans.length; i++) {
spans[i].onclick = function () {
alert(i);
}
}
i++;
//if逻辑块
var v = 0;
if (true) {
document.getElementById("btnTest").onclick = function test() {
alert(v);
}
}
v++;
</script>
</body>
有些问题不解,希望解答 谢谢:
对于for逻辑体,先抛开i++不说,这个例子是典型for循环内引用全局变量造成绑定都是一个值的问题。在绑定click监听时,函数并未执行,当在触发click时,全局变量i的值是多少就alert多少。如果抛开i++,是4没问题。但是我后面有了i++,在click之前 i 的值已经改变,为什么alert的不是5呢?很是费解。而if逻辑块,输出的就是v++后的值。它们区别在哪呢??