<div>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
(1)使用属性存储下标
var _spans =$("span");
for(var i = 0,len = _spans.length;i<len;i++){
_spans[i].index = i;
_spans[i].onclick = function(){
console.log(this.index)
}
}
(2)使用let定义变量,使{}也能形成作用域ES6中的用法
var _spans = $("span");
for(let i = 0,len = _spans.length;i<len;i++){
_spans[i].onclick = function(){
console.log("第i个索引" + i);
}
}
(3)Array.from+indexOf
var _spans = $("span");
for(var i = 0,len = _spans.length;i<len;i++){
_spans[i].onclick = function(){
var index = Array.from(_spans).indexOf(this);
console.log(index);
}
}
(4)闭包
var spans = $("span");
for(var i = 0,len = spans.length;i < len;i++){
spans[i].onclick = clk(i)
}
function clk(num){
return function(){
console.log(num);
}
}
(5)forEach
spans.forEach(function(e,i){
//e是元素,i是每个下标
spans[i].onclick = function(){
console.log(i);
}
})