$ ('elems'). each() с жирной стрелкой

Я начал использовать условную обозначение функции ES6 fat, и мне это очень нравится. Но я немного смущен этим контекстом. Насколько мне известно, ключевое слово this in fat arrow function относится к контексту, в котором функция в настоящее время работает. Я хотел сделать простую итерацию jQuery, например:

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

Но, очевидно, этот фрагмент кода не работает. Как я могу ссылаться, внутри функции стрелки жира, на текущий элемент "LI" в этом конкретном коде?

Спасибо.

Ответ 1

Каждый() метод предоставляет два параметра функции обратного вызова. Это текущий индекс и текущий элемент. Таким образом, вы можете сделать следующее:

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

Если переменная "v" является текущим элементом "li"

Ответ 2

Потому что this в контексте функции стрелок совпадает с контекстом вызова.

Функция each предоставляет текущий элемент в качестве второго аргумента для обратного вызова, поэтому

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

Или в данном случае нет необходимости в цикле

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