在网上看到的方法,第一个方法比较常见,第二种方法是第一次见,mark一下~
- 方法一:立即执行函数(IIFE)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>0</h1>
<h1>1</h1>
<h1>2</h1>
<h1>3</h1>
<h1>4</h1>
<script type="text/javascript">
var head = document.getElementsByTagName("h1");
for(var i=0;i<head.length;i++){
(function(i){
head[i].onclick = function(){
alert(i);
};
}(i));
}
</script>
</body>
</html>
- 方法二:将i绑定到对应元素的的属性上
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>0</h1>
<h1>1</h1>
<h1>2</h1>
<h1>3</h1>
<h1>4</h1>
<script type="text/javascript">
var head = document.getElementsByTagName("h1");
for(var i=0;i<head.length;i++){
head[i].index = i;
head[i].onclick = function(){
alert(this.index);
};
}
</script>
</body>
</html>