Описание: Общая
функция итератора, которая может быть использована для перебора как
объектов так и массивов. Массивы и объекты массивов со свойством длины
(например, в качестве аргументов функции объекта), перебираются все по
числовому индексу, от 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 );
});
|