2017-10-16 11 views
0
var orders=document.getElementsByClassName("order"); 
for(var i=0;i<orders.length;i++){ 
    orders[i].index=i; 
    orders[i].onclick=function(){ 
     console.log(orders[i].index); 
    } 
} 

l'erreur comme ceci: enter image description hereune erreur de « cette »

Mais quand je change le code comme ceci:

var orders=document.getElementsByClassName("order"); 
    for(var i=0;i<orders.length;i++){ 
     orders[i].index=i; 
     orders[i].onclick=function(){ 
      console.log(this.index); 
     } 
    } 

L'erreur a disparu, et ce que je suis confus au sujet est que ce == commandes [i] comme nous le savons, mais pourquoi quand j'utilise des commandes [i] .index, il se trompe?

+0

parce que 'i === orders.length' le temps' commandes [i] .onclick' est exécuté –

+0

ouais, vous êtes right.I a essayé de consoler connecter le « i ", et la dernière valeur de" i "est" indéfini ".Merci de répondre à ma première question, haha ​​ –

Répondre

0

$(document).on('click', '.order', function() { 
 
     console.log($(".order").index(this)); 
 
});
<div class="order ">product info</div> 
 
<div class="order">product info</div> 
 
<div class="order">product info</div> 
 
<div class="order">product info</div> 
 
<div class="order">product info</div>

+0

déjà résolu, Thx –