Spec-Zone.ru › jQuery

jQuery.each()

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 );
});

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquery.com/jQuery.each

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API