Описание: Общая
функция итератора, которая может быть использована для перебора как
объектов так и массивов. Массивы и объекты массивов со свойством длины
(например, в качестве аргументов функции объекта), перебираются все по
числовому индексу, от 0 до длины минус 1. Другие объекты перебираются
через их именные свойства.
jQuery.each( коллекция, обратныйВызов(индексВМассиве, значениеЭлемента) )
Добавлена в версию: 1.0
Объект или массив для перебора.
обратныйВызов(индексВМассиве, значениеЭлемента)
Функция
Функция, которая будет выполняться на каждый объект.
Функция $.each() подобна .each(), которая используется для перебора, исключительно объектов jQuery. Функция $.each()
может быть использована для перебора любой коллекции, будь то карта
(объект JavaScript) или массив. В случае, если это массив, функция
обратного вызова передает индекс массива и соответствующее значение
массива каждый раз. (Значение также может быть полученно посредством
ключевого слова this, но Javascript всегда обертывает значение this как Объект
даже если это простая сторока или числовое значение.) Метод возвращает
первый аргумент, объект, который соответствует текущему перебору.
$.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; он сразу перейдет к следующему перебору. Примеры
Пример 1
Обрабатывает каждый элемент массива показывая его номер (как числом так и словом).
var arr = [ "one", "two", "three", "four", "five" ];
var obj = { one:1, two:2, three:3, four:4, five:5 };
jQuery.each(arr, function() {
$("#" + this).text("My id is " + this + ".");
return (this != "four"); // will stop running to skip "five"
});
jQuery.each(obj, function(i, val) {
$("#" + i).append(document.createTextNode(" - " + val));
});
Пример 2
Обрабатывает каждый элемент массива получая доступ как к текущему элементу, так и к его индексу.
$.each( [0,1,2], function(i, n){
alert( "Item #" + i + ": " + n );
});
Пример 3
Обрабатывает каждое свойство объекта получая доступ как к текущему элементу, так и к его значению.
$.each( { name: "John", lang: "JS" }, function(i, n){
alert( "Name: " + i + ", Value: " + n );
});
|