$ ('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');