|
-
Категории: Utilities
jQuery.each()
Производит циклический обход (перебор) по свойствам объекта (или элементам массива, или массивоподобного объекта) и вызывает функцию обратного вызова для каждого из них.
Синтаксис и описание:
Добавлено в jQuery 1.0jQuery.each( object, callback( [indexInArray, valueOfElement] ) )
Метод jQuery.each() производит обход по свойствам объекта, элементам массива или массивоподобного объекта (любой объект, имеющий длину и поддерживающий индексы) и вызывает функцию callback для каждого из них. Итерация по элементам массива или объекта, подобного массиву, производится с использованием их числовых индексов (от 0 до length-1). Для остальных объектов перебор осуществляется по именам свойств объекта. Не путать с методом .each().
Параметры:
object – (массив | объект) Массив или объект, по элементам которого выполняются итерации, или объект, по именам свойств которого выполняются итерации.
callback( [indexInArray, valueOfElement] ) – (функция) Функция, вызываемая для каждого элемента массива, массивоподобного объекта или для каждого свойства объекта. С каждой итерацией в качестве первого параметра indexInArray ей передается индекс текущего элемента массива, или массивоподобного объекта (начиная с 0), либо имя свойства объекта. В качестве второго параметра valueOfElement – значение элемента массива или значение свойства объекта, которое также доступно через контекст this вызова функции (valueOfElement == this ).
-
Примечание:
Чтобы выйти из цикла each() (отменить следующую итерацию), необходимо, чтобы в текущей итерации функция-итератор вернула false.
Примеры:
-
Сначала перебрать элементы массива arr, вставляя в цикле динамически создаваемое текстовое содержимое в блок div, id которого совпадает со значением текущего элемента массива. После того, как попадется элемент массива со значением three, выйти из цикла. Потом произвести обход по всем свойствам объекта obj, и с каждой итерацией вставлять текстовые узлы по тому же принципу, но выполнить цикл до конца.
<!DOCTYPE html>
<html>
<head>
<style>
div { color:blue; }
div#five { color:red; }
</style>
<script src="http://code.jquery.com/jquery-latest.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() {
$("#" + this).text("Mine is " + this + ".");
return (this != "three"); // Выйти из цикла после "three"
});
jQuery.each(obj, function(i, val) {
$("#" + i).append(document.createTextNode(" - " + val));
});
</script>
</body>
</html>
Демонстрация примера:
Mine is one. - 1
Mine is two. - 2
Mine is three. - 3
- 4
- 5
[ наверх ]
|
|