jQuery.each()
Универсальная функция итерации (выполнения цикла), которая может быть использована для итерирования и объектов, и массивов. Массивы и массивоподобные объекты со свойством 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 ); });
Новое в справочниках
- Метод jQuery.ajax() / 20.04.2011
- jQuery-селектор [attribute$="value"] / 04.02.2011
- Метод jQuery.sub() / 31.01.2011
- Популярные плагины jQuery / 20.01.2011
- Метод .animate() в jQuery / 27.12.2010
Комментарии
Здравствуйте. Помогите разобраться в такой ситуации:
имеем 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++;