js如何给ul的所有的li绑定事件,打印他们的索引
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 7 <style type="text/css"> 8 9 ul{ 10 list-style: none; 11 } 12 li{ 13 /* width: 100px; */ 14 height: 40px; 15 background-color: red; 16 margin: 10px auto; 17 } 18 </style> 19 </head> 20 <body> 21 22 <ul> 23 <li>第一个li</li> 24 <li>第二个li</li> 25 <li>第三个li</li> 26 </ul> 27 28 <script type="text/javascript"> 29 30 // js如何给ul的所有的li绑定事件, 假设有三个li 31 32 var itemli = document.getElementsByTagName("li"); //是个伪数组 33 34 for(var i=0; i<itemli.length; i++){ //事件绑定为异步操作,for循环已经结束了,i为3 35 36 itemli[i].onclick=function(){ 37 console.log(i) //i为3 38 } 39 40 } 41 42 //方法一; 43 var itemli = document.getElementsByTagName("li"); 44 for(var i=0; i<itemli.length; i++){ 45 itemli[i].index=i; //给每个li定义一个index属性 46 itemli[i].onclick=function(){ 47 console.log(this.index+ this.innerHTML) 48 } 49 50 } 51 52 // 方法二; 53 var itemli = document.getElementsByTagName("li"); 54 55 for(var i=0; i<itemli.length; i++){ 56 (function(n){ //利用闭包, 57 58 itemli[n].onclick=function(){ 59 console.log(this.innerHTML+",索引是"+ n) 60 } 61 62 })(i) 63 } 64 65 // jq方法 66 var $itemli = $("li"); 67 $itemli.click(function(){ //隐士遍历 68 console.log(this.innerHTML+ this.index()) 69 }) 70 71 72 73 74 </script> 75 </body> 76 </html>