Универсальная функция итерации (выполнения цикла), которая может быть использована для итерирования и объектов, и массивов. Массивы и массивоподобные объекты со свойством length (такие как объект аргументов у функций) можно итерировать по числовому индексу от 0 до length-1. Другие объекты итерируются по названию своих свойств. Метод появился в jQuery 1.0.

jQuery.each( collection, callback(indexInArray, valueOfElement) )

Аргументы:

  • collection — Массив или объект.
  • callback(indexInArray, valueOfElement) — Функция, которая будет выполнена над каждым элементом объекта или массива.

Не нужно путать функцию $.each() с функцией .each(), которая используется для итерирования исключительно объектов jQuery. Функция $.each() может быть использована для итерирования любых коллекций, которые являются массивами или объектами JavaScript. В случае массивов в функцию передаются индекс массива (indexInArray) и соответствующее значение (valueOfElement). (The value can also be accessed through the this keyword, but Javascript will always wrap the this value as an Object even if it is a simple string or number value.) Этот метод возвращает свой первый аргумент, то есть объект итерирования.

$.each([52, 97], function(index, value) {
  alert(index + ': ' + value);
});

Пример указанный выше выдаст два сообщения:

0: 52
1: 97

Если в качестве коллекции указывается объект, то каждый раз в функцию передается пара "ключ-значение":

var map = {
  'flammable': 'inflammable',
  'duh': 'no duh'
};
$.each(map, function(key, value) {
  alert(key + ': ' + value);
});

Пример отобразит два сообщения:

flammable: inflammable
duh: no duh

Можно закончить выполнение цикла метода $.each() на любой итерации, просто вернув false. Возвращение не-false значения равноценно конструкции continue в цикле for, который прекращает текущую итерацию и переходит к следующей.

Примеры использования метода jQuery.each()

Задача: Пройтись по элементам массива, вывести и значение, и индекс.

$.each( ['a','b','c'], function(i, l){
  alert( "Index #" + i + ": " + l );
});

Задача: Пройтись по свойствам объекта, отобразив и название свойства, и его значение.

$.each( { name: "John", lang: "JS" }, function(k, v){
  alert( "Key: " + k + ", Value: " + v );
});

 

Комментарии

Здравствуйте. Помогите разобраться в такой ситуации:
имеем obj = [{a:1,b:null},{a:12,b:null},{a:45,b:15}] . Как сосчитать b которые имеют свойство null? 

 Вобщем нашёл решение , если кому интересно
var numnull;
for(var i=0;i<obj.length;i++){
 if(!obj.b) numnull++;}
 alert(numnull);

* if(!obj[i].b) numnull++;