Позвольте мне показать вам два «эквивалентных» фрагмента кода, которые могли бы прояснить ваш вопрос:
С функцией jQuery "каждый":
(function($) {
$.fn.mangle = function(options) {
return this.each(function() {
$(this).append(' - ' + $(this).data('x'));
});
};
})(jQuery);
Без jQuery "каждая" функция:
(function($) {
$.fn.mangle = function(options) {
var objs = this;
for (var i=0; i<objs.length; i++) {
var obj = objs[i];
$(obj).append(' - ' + $(obj).data('x'));
};
return this;
};
})(jQuery);
Таким образом, в основном, функция each
используется для применения некоторого кода ко всем элементам, содержащимся в объекте this
( как this
обычно относится к группе элементов, возвращаемых селектором jQuery ) и вернуть ссылку на this
(, так как each
функция всегда возвращает эту ссылку - чтобы разрешить цепочку вызовов - )
В качестве примечания : Второй подход ( - for
loop- ) быстрее (особенно в старых браузерах), чем прежний ( - each
функции- ).