j
Query.each() — это итератор, т.е. такая функция которая перебирает все элементы массива или объекта. Синтаксис данной функции имеет следующий вид:
jQuery.each(collection, callback(indexInArray, valueOfElement) )
collection - массив или объект
callback - функция которая будет вызываться для каждого элемента коллекции
Внимание! Не нужно путать функцию
jQuery.each() с функцией
$(selector).each() — в первом случае функция
each работает с произвольной коллекцией, которая передается ей в качестве первого аргумента, а во втором только с элементами
jQuery, которые были выбраны в рамках используемого селектора.
Более того, если посмотреть код
jQuery, то легко убедиться, что функция
$(selector).each() — это не что иное как обертка для функции
jQuery.each(), где в качестве первого аргумента передается элемент
this:
// Execute a callback for every element in the matched set.
// (You can seed the arguments with an array of args, but this is
// only used internally.)
each: function( callback, args ) {
return jQuery.each( this, callback, args );
}
Возможно, кому-то покажется странным, что в качестве коллекции передается указать
this. Хотя на самом деле ничего странного здесь нет, достаточно вспомнить, что экземпляр класса
jQuery — это ни что иное как коллекция dom-элементов, которые были выбраны на основании заданного селектора.
Иногда, в процессе перебора элементов коллекции, возникает необходимость прекратить дальнейший перебор. Для этого достаточно в callback-е (см. синтаксис
jQuery.each() использовать конструкцию "
return false;".
Другими словами функция-обработчик возвращающая булево значение «false» останавливает дальнейший перебор элементов коллекции.
Для наглядности приведу пару примеров:
$.each([111, 43, 43], function(index, value) {
alert(index + ': ' + value);
});
Результат:
0:111
1:43
2:43
var map = {
'flammable': 'inflammable',
'duh': 'no duh'
};
$.each(map, function(key, value) {
alert(key + ': ' + value);
});
Результат:
flammable: inflammable
duh: no duh
Если после прочтения заметки появились какие-то мысли, замечания или просто желание сказать спасибо, то милости прошу в комментарии.
Комментарии (0)
RSS свернуть / развернутьТолько зарегистрированные и авторизованные пользователи могут оставлять комментарии.