2016-04-11 15 views
11

Ho iniziato a utilizzare la notazione di funzione di freccia di grasso ES6 e mi piace molto. Ma sono un po 'confuso riguardo il contesto. Per quanto ne so, la parola chiave presente all'interno della funzione freccia grossa si riferisce al contesto in cui la funzione è attualmente in esecuzione. Volevo fare qualche semplice iterazione jQuery come:

$('ul#mylist > li').each(() => { 
    $(this).addClass('some-class-name'); 
}); 

Ma ovviamente questo pezzo di codice non funziona. Come faccio a fare riferimento, all'interno della funzione freccia adiposa, all'elemento "LI" corrente in questo specifico codice?

Grazie.

risposta

20

L'ciascuno() metodo forniture due parametri per la funzione callback. Sono indice corrente e articolo corrente. Così si potrebbe procedere come segue:

$('ul#mylist > li').each((i, v) => { 
    $(v).addClass('some-class-name'); 
}); 

dove la variabile "v" è l'elemento corrente "li"

3

Perché this nel contesto della funzione freccia è uguale al contesto di chiamata.

La funzione each fornisce un elemento di corrente come secondo argomento al callback così

$('ul#mylist > li').each((i, el) => { 
    $(el).addClass('some-class-name'); 
}); 

Oppure, nel caso specifico non è necessario eseguire un ciclo

$('ul#mylist > li').addClass('some-class-name');