<ul id="list">
<li>序号1</li>
<li>序号2</li>
<li>序号3</li>
<li>序号4</li>
<li>序号5</li>
<li>序号6</li>
<li>序号7</li>
<li>序号8</li>
<li>序号9</li>
<li>序号10</li>
</ul>
var list = document.getElementsByTagName('li');
var listLen = list.length;
// 错误写法
for(var i=0;i<listLen;i++) {
list[i].onclick = function () {
// 每次输出都是10
console.log(i);
}
}
// 使用闭包一
for(var i=0;i<listLen;i++) {
function msg(n){
list[n].onclick = function () {
console.log(n+1);
}
}
msg(i);
}
msg = null;
// 使用闭包二
for(var i=0;i<listLen;i++) {
(function msg(n) {
list[n].onclick = function () {
console.log(n+1);
}
})(i);
}
msg = null;
// 非闭包,使用属性进行保存
for(var i=0;i<listLen;i++) {
list[i].i = i;
list[i].onclick = function () {
// 不能写成list[i].i
console.log(this.i+1);
}
}
$(function () {
var li = $('li');
// jquery写法
li.click(function () {
console.log($(this).index()+1);
});
});