jQuery.each( array, callback )Возвращает: Объект
Описание: Универсальная функция итерации, которая может быть использована для плавного перебора как объектов, так и массивов. Массивы и массивоподобные объекты с свойством length (такие как объект arguments функции) итерируются по числовому индексу, от 0 до length-1. Другие объекты итерируются по их именованным свойствам.
-
версия добавлена: 1.0jQuery.each( array, callback )
- arrayМассив или массивоподобный объект для перебора.
- callbackФункция, которая будет выполняться для каждого значения.
-
-
версия добавлена: 1.0jQuery.each( object, callback )
- objectТип: ОбъектОбъект для перебора.
- callbackФункция, которая будет выполняться для каждого значения.
-
Функция $.each() отличается от $(selector).each(), которая используется для итерации исключительно по объекту jQuery. Функция $.each() может быть использована для итерации по любому набору, будь то объект или массив. В случае массива обратная функция получает индекс массива и соответствующее значение массива каждый раз. (Значение также можно получить через ключевое слово this, но Javascript всегда обернёт значение this в Object, даже если это просто строка или числовое значение.) Метод возвращает свой первый аргумент, объект, который был перебран.
$.each([ 52, 97 ], function( index, value ) {
alert( index + ": " + value );
}); Это приводит к двум сообщениям:
0: 52
1: 97
Если в качестве набора используется объект, обратная функция каждый раз получает пару ключ-значение:
var obj = {
"flammable": "inflammable",
"duh": "no duh"
};
$.each( obj, function( key, value ) {
alert( key + ": " + value );
}); Опять же, это приводит к двум сообщениям:
flammable: inflammable
duh: no duh
Мы можем прервать цикл $.each() на определенной итерации, заставив функцию обратного вызова возвращать false. Возврат не-ложного значения эквивалентен оператору continue в цикле for; это позволит немедленно перейти к следующей итерации.
Примеры:
Перебирает массив, отображая каждое число как словом, так и цифрой
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery.each demo</title>
<style>
div {
color: blue;
}
div#five {
color: red;
}
</style>
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>
<div id="four"></div>
<div id="five"></div>
<script>
var arr = [ "one", "two", "three", "four", "five" ];
var obj = { one: 1, two: 2, three: 3, four: 4, five: 5 };
jQuery.each( arr, function( i, val ) {
$( "#" + val ).text( "Mine is " + val + "." );
// Will stop running after "three"
return ( val !== "three" );
});
jQuery.each( obj, function( i, val ) {
$( "#" + i ).append( document.createTextNode( " - " + val ) );
});
</script>
</body>
</html> Демо:
Перебирает элементы в массиве, получая доступ к текущему элементу и его индексу.
$.each( [ "a", "b", "c" ], function( i, l ){
alert( "Index #" + i + ": " + l );
}); Перебирает свойства в объекте, получая доступ к текущему элементу и его ключу.
$.each({ name: "John", lang: "JS" }, function( k, v ) {
alert( "Key: " + k + ", Value: " + v );
});